Tom: sortierung bei GROUP BY

Beitrag lesen

Hello Sven,

Nein. Die Sortierspalte heißt nicht "Epochensekunde", sondern "MAX(Epochensekunde)", wobei dieser Name gerne mit der Aggregatsfunktion kollidiert.

Deshalb: Alias-Name für die MAX-Spalte vergeben und den verwenden.

SELECT thema, MAX(Epochensekunde) as zeit FROM tabelle GROUP BY thema ORDER BY zeit

Ja, das ist nachvollziehbar und hätte ich auch so gemacht, wenn Boris nicht geschrieben hääte, dass da bei ihm nicht klappt.

Meinen Vorschlag hatte ich mit meiner Testdatenbank ausprobiert und er hat funktioniert. Nun frage ich mich aber, warum

SELECT  ID_TEST, VARC, count(VARC) as MENGE, MAX(UPDATETIME1) as ZEIT
FROM TEST
GROUP BY VARC
ORDER BY ZEIT;

So wäre es dann also richtig und so funktioniert es auch.

Nun habe ich gerade eben noch was merkwürdiges festgestellt. Die Spalte VARC ist ein VarChar (was auch sonst) und es gibt auch Zeilen, in denen VARC == NULL ist. Die werden nicht mitgezählt. Es wird zwar in die Gruppierung genau eine Zeile mit NULL aufgenommen, aber MENGE bleibt 0.

Muss das so sein oder habe ich da wieder einen Denkfehler drin (oder ist es vielleicht sogar ein Bug)?

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen