title image


Smiley Re: Höchstes Datum
Diese Abfrage ist defekt, auch wenn sie in MySQL vielleicht leider funktioniert. Es gibt eine ganz einfache Regel beim GROUP BY und Aggregatfunktionen wie MAX(), SUM(), COUNT() etc.:



Alle Felder, die in GROUP BY aufgezählt sind, müssen in SELECT als Felder selektiert werden und alle Felder im SELECT-Teil die keine Ausdrücke sind, müssen im GROUP BY genannt werden.



Richtig:



SELECT a, b, c, COUNT(*) FROM tab GROUP BY a, b, c

SELECT MAX(b) FROM tab

SELECT c, SUM(b) FROM tab GROUP BY c



Falsch:



SELECT a, COUNT(b) FROM tab GROUP BY a, b, c

SELECT a, b, c, d, e, COUNT(*) FROM tab GROUP BY a, b, c

SELECT MAX(b) FROM tab GROUP BY b

SELECT b, c, SUM(b) FROM tab GROUP BY c

Meine Microsite || SQL-Tips.de || D-3 (2007/08) / AI-29 (2006)


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: