Frank (no reg): select max() geht nicht

Beitrag lesen

Salut,

SELECT id, Ort, Max(woche) AS MaxWoche, Max(Jahr) AS MaxJahr
FROM Tabelle2
WHERE Ort = "o1"
GROUP BY id;

die Fehlermeldung, dass nicht nach Ort gruppiert wird. Das ist ja auch richtig, da Ort als Feld direkt angesprochen wird und nicht per Aggregatfunktion. Es _könnte_ aber auch darauf hinweisen, dass trotz WHERE, welches ja _einen_ Ort vorgibt, eben immer _erst_ gruppiert wird. Wie gesagt, müsste man hier sehr tief in den DB-Interna stecken, um das endgültig bewerten zu können.

Der erste Teil ist mehr falsch als richtig. Das Query hat "Ort" im Output und es wird nur nach Id gruppiert (nach dem surrogativen PK in derselben Tabelle zu gruppieren ist relativ schwachsinnig) und nicht nach Ort. Es beschwert sich also nicht über WHERE Ort = 'o1' sondern über SELECT id, Ort.

Ansonsten beinhaltet deine Meinung sehr viel "Konjunktivismus" (könnte, hätte, müsste).

Cheers,
Frank