Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> hej pomocy co z tym postgre, count w postgre
truvati
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 7.01.2006

Ostrzeżenie: (0%)
-----


witam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

tabela1: kategoria
1 id_kat
2 kategoria

tabela2: foto
1 id_foto
2 id_kat

  1. SELECT kategoria.kategoria, kategoria.id_kat, count( foto.id_foto ) AS ile
  2. FROM foto INNER JOIN kategoria ON kategoria.id_kat = foto.id_kat
  3. GROUP BY foto.id_kat


prosze uzywac odpowiednich tagów w tym wypadku [ sql ]
alek


i kupa ... : ERROR: column "kategoria.kategoria" must appear in the GROUP BY clause or be used in an aggregate function

a kurcze jak w takim wypadku mam wyciągnac te dane (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) przez dwa zapytania (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
nie kumam .. w innych bazach to śmiga bez problemu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) co jest nie tak (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

pozdro for all

Ten post edytował aleksander 12.01.2006, 15:34:34
Go to the top of the page
+Quote Post
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


  1. SELECT kategoria.kategoria, kategoria.id_kat, count(foto.id_foto) AS ile
  2. FROM foto INNER JOIN kategoria ON kategoria.id_kat=foto.id_kat
  3. GROUP BY foto.id_foto, kategoria.kategoria, kategoria.id_kat
Go to the top of the page
+Quote Post
truvati
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 7.01.2006

Ostrzeżenie: (0%)
-----


i jeszcze większa kupa (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !!!!!


wynik tego zapytania to

kategoria id_kat ile
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1
fantasy 1 1


a powinno pokazać
fantasy (kategoria) |1 (id_kat) | 30 (ile)


czy naprawde w postgre tak prostego zapytania nie można wykoanać tak łatwo ....?
jeżeli tak to porażka..

może ktoś jeszcze ma jakiś pomysł .. inaczej trzeba to będzie na dwa zapytania rozbic.... a zapytanie z countem to chyba klasyk jeżeli chodzi o sql
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


To zastanow sie co chcesz osiagnac. Jesli masz funkcje agregacji to musisz reszte pol powturzyc w group by aby zapytanie skladniowo bylo poprawne i logicznie.

Jesli chesz zrocic ilosc foto dla danej kategorii to:

  1. SELECT kategoria.kategoria, COUNT(foto.id_foto) AS ilosc
  2. FROM kategoria LEFT JOIN foto ON (kategoria.id_kat = foto.id_kat)
  3. GROUP BY kategoria.kategoria
Go to the top of the page
+Quote Post
truvati
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 7.01.2006

Ostrzeżenie: (0%)
-----


a wcale nie ... przykład jest banalny, dzisiaj dokładnie się dowiedziałem co i jak ... mysql nie wymaga myślenia przy pisaniu zapytań, postgre tak... i całe szczęście... przesiadam się na postgre

  1. SELECT kategoria.kategoria,kategoria.id_kat, count(foto.id_foto) AS ilosc_fot
  2. FROM kategoria INNER JOIN foto ON kategoria.id_kat=foto.id_kat
  3. GROUP BY kategoria.kategoria,kategoria.id_kat


tak wygląda zapytanie działające poprawnie w postgre... troszkę inna logika myślenia niż mysql...

Ten post edytował truvati 18.01.2006, 13:26:08
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Zapytanie jest poprawne. Do mojego przykladu wystarczylo uzyc dodatkowego grupowania.

Odnosnie nazwewnictw to nie postgre tylko postgresql lub postgres. A co do myslenia to to samo zapytanie masz w MySQL, myslalenie sie dopiero zaczyna jak Ci wydajnosc spada i uzywasz podzapytan, funkcji i triggerow
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 22:40