Vinzenz Mai: (MySQL) Gruppierung von Datensätzen, Probleme mit NULL

Beitrag lesen

Hallo,

Das war eigentlich nicht meine Frage. Ich habe in meiner Spaltenliste ja gar keine Aggregatsfunktion und brauche auch keine.

inzwischen :-) Du benötigst inzwischen auch (im äußeren SELECT) kein GROUP BY.

Meine Frage war jetzt, ob es aber möglich ist, GROUP BY _ohne_ Aggregatsfunktion in der Projektion zu nutzen.

ja. Gruppiere nach allen Spalten, die in der Spaltenliste vorkommen :-)

Um bei dem bisherigen Beispiel zu bleiben:

SELECT id,wert

FROM test
GROUP BY wert

  

> Wie ist das Verhalten dieser Abfrage definiert?  
  
Standard: Fehler  
MySQL: gib in jeder Gruppe mit gleichen wert-Werten eine beliebige id aus der Gruppe aus - wie ich bereits schrieb.  
  
ohne Aggregatsfunktion in korrektem SQL:  
  
~~~sql
SELECT  
    id,  
    wert  
FROM  
    test  
GROUP BY  
    wert,  
    id  

Ich konnte nur mit HAVING noch nicht sehr viel anfangen. Für mich war HAVING quasi die WHERE-Klausel für alle Datensätze, die den gleichen Wert aufwiesen.

HAVING ist nicht die "WHERE-Klausel" innerhalb einer Gruppe, sondern die Einschränkung für die Datensätze *nach* dem Gruppieren, d.h. also welche Gruppen in die Ergebnismenge sollen.

Freundliche Grüße

Vinzenz