powerbook_blog

klein, praktisch, unverdaulich seit 2004

MySQL: SELECT DISTINCT nach anderer Spalte sortieren

| Keine Kommentare

Die Überschrift ist verwirrend, egal. Ich hatte ein Problem. In einer Tabelle habe ich IP-Adresse, Browser, Zugriffsurl und einen Zeitstempel gespeichert. Die Ausgabe habe ich dann mit der Abfrage

SELECT DISTINCT CONCAT(ip,browser) AS unique_user FROM table1 ORDER BY zeit DESC;

erzeugt. Dabei hatte ich aber das Problem, dass er zur Sortierung der Zeit immer das älteste Datum ( also das erste Vorkommen ) herangezogen hat:

ip1 browser1 12:01
ip2 browser1 12:02
ip1 browser1 12:03
ip1 browser1 12:05
ip3 browser1 12:10

ergab also eine Sortierung: ip3, ip2, ip1 statt ip3, ip1, ip2. Da ein SELECT DISTINCT ja mehr oder weniger nur ein normaler SELECT mit einem GROUP BY ist, konnte ich das Problem mit folgendem Query lösen:

SELECT DISTINCT CONCAT(ip,browser) AS unique_user, MAX(zeit) AS zeitig FROM table1 ORDER BY zeitig DESC;

Schreib einen Kommentar

Pflichtfelder sind mit * markiert.