dedlfix: mysql: Mehrfach vorhandene Einträge (aber mit Bedingung) finden

Beitrag lesen

Tach!

das hast Du falsch verstanden, bei MYSQL geht MEHR als erlaubt ist.

Beschrieben im MySQL-Handbuch.

Angenommen, du hast eine Tabelle Waren (Kategorie, Artikel, Preis). Dann ist SELECT Kategorie, Preis FROM Waren GROUP BY Kategorie falsch. Du kannst SUM(PREIS), MIN(PREIS) oder COUNT(*) machen, aber keine ungruppierte Spalte angeben. In MYSQL schon, der nimmt dann einfach den Preis vom ersten Artikel den er findet. Zumindest meine ich das mal so gelesen zu haben.

Irgendeinen, nicht den ersten, denn dazu müsste die Menge definiert sortiert sein. Wenn man MySQL auf Standardkonformität einstellt, dann kann man eine solche Query trotzdem stellen, muss aber dazu die Aggregatfunktion ANY_VALUE() nehmen. Damit wird dann auch deutlich, dass da irgendwas kommt, nur nichts definiertes.

Das Verhalten ist für solche Fälle gedacht, wo die Gruppierung trotzdem eindeutige Werte liefert, beispielsweise bei nicht normalisierten Mengen, oder wenn eine Menge mit Dopplungen drin durch einen Join entstanden ist.

dedlfix.