wohin mit der where klausel
hotti
- datenbank
0 Volker Nebelung1 Cheatah0 hotti
hi,
die Tabelle für mein access_log sieht so aus:
url, ts, hugo (/datei.html, Zeitstempel, Besuchername)
In meiner Abfrage
SELECT hugo, count(hugo) as hug, min(ts) as min, max(ts) as max
FROM log GROUP BY hugo ORDER BY hug DESC
kriege ich z.B.
'Krawitzki' '6' '18.05.09 23:31:58' '20.05.09 19:51:37'
und sehe dass der Krawitzki sechsmal da war, das Erstemal am/um usw.
Nun gibt es jede Menge Eintagsfliegen, die ich nicht haben will. Wohin mit
WHERE count(hugo) > 1
vor Group By oder nach Group by gibt Fehlermeldungen, die mich ahnen lassen, dass das so nicht geht. Gehts überhaupt?
Hotti
Aloha 'oe,
WHERE count(hugo) > 1
ich glaube man kann COUNT() nicht in der WHERE-Klausel verwenden. Dazu ist
meines Wissens nach HAVING da.
Gruß
Volker
Hi,
vor Group By oder nach Group by gibt Fehlermeldungen, die mich ahnen lassen, dass das so nicht geht. Gehts überhaupt?
die WHERE-Klausel kommt in den Orkus. Statt dessen verwendest Du die HAVING-Klausel so wie es in der Dokumentation Deines DBMS' beschrieben ist.
WHERE filtert vor der Gruppierung, HAVING danach. Erst wenn gruppiert wird, gibt es eine Anzahl, nach der Du filtern kannst.
Cheatah
hi,
WHERE filtert vor der Gruppierung, HAVING danach. Erst wenn gruppiert wird, gibt es eine Anzahl, nach der Du filtern kannst.
Ein herzliches Dankeschön, auch an Volker. Es tut einwandfrei und ich habe jetzt auch (wieder) verstanden, wozu HAVING ist.
Viele Grüße,
Hotte