Tobi: Queryfrage GROUP BY und HAVING

Hi,

was hiervon ist (alles) korrekt, wenn ich doppelte Einträge finden will?

  
SELECT Einträge FROM TABELLE GROUP BY Einträge HAVING COUNT(*) > 1  

  
SELECT Einträge, COUNT(*) AS Anzahl FROM TABELLE GROUP BY Einträge HAVING Anzahl > 1  

  
SELECT Einträge, COUNT(*) AS Anzahl FROM TABELLE GROUP BY Einträge HAVING COUNT(*) > 1  

Kann ich den Zählvorgang der Gruppierung bereits im SELECT machen und das Alias im HAVING nochmal benutzen?

Tobi

  1. Tach!

    was hiervon ist (alles) korrekt, wenn ich doppelte Einträge finden will?

    Alles, was dir das korrekte Ergebnis liefert.

    Kann ich den Zählvorgang der Gruppierung bereits im SELECT machen und das Alias im HAVING nochmal benutzen?

    Die Reihenfolge der Abarbeitung entspricht der Reihenfolge, in der man die Klausel notieren muss. Die SELECT-Klausel bildet eine Ausnahme, denn die wird zwischen GROUP BY und HAVING ausgewertet. Alles was in einer Klausel angegeben wurde, ist erst danach verfügbar. Demzufolge sind Aliase aus dem SELECT im HAVING verfügbar. Dieses Ja hätte dir auch ein kleiner Test geben können.

    dedlfix.