dedlfix: GROUP BY - höchsten Wert in anderer Spalte nicht verlieren

Beitrag lesen

Tach!

Du meinst, ich dürfte update in anderen SQL-Dialekten nicht selektieren, da ich darüber gruppiere?

+ nicht. Und auch id kannst du so nicht ermitteln, weil auch das ein Zufallswert aus der Gruppe ist. Mann kann auch nicht davon ausgehen, dass sich das am MAX() orientiert, denn in Abfragen, die MAX, MIN und AVG ermitteln, welcher Wert soll dann in id stehen?

Und wo setze ich MAX() genau ein? Etwa so?

SELECT `id`, `update`, `login`
FROM `user_updated_log`
WHERE (
    SELECT MAX(`update`)
    FROM `user_updated_log`
    WHERE `login`=`login`
)
GROUP BY `login`
ORDER BY `update`

Den MAX-Wert der Gruppe ermittelt man so:

SELECT `login`, MAX(`update`) FROM `user_updated_log` GROUP BY `login`

Aber eigentlich brauchst du die Gruppierung nicht, denn es sollte so gehen (ungetestet):

SELECT * FROM user_updated_log u WHERE `update` = (SELECT MAX(m.`update`) FROM `user_updated_log` m WHERE m.`login` = u.`login`)

dedlfix.