2017-03-11 2 views
0

Ich habe tbl_eventsmysql - Gruppe von bis ältesten und neuesten Daten in eine Reihe zu bekommen

key userID date 

1  1   1.1.2000 
2  1   1.1.2017 
3  2   2.2.1990 

Ich versuche, diese zu bekommen:

select distinct userID, date [that is earliest eg row 1] as earliest_date, 
date [that is latest eg row 2] as latest_date 
from tbl_events 

wenn eine Benutzer-ID nur eine Zeile in tbl_events hat dann würde tbl_events.date, da sowohl die frühesten dienen und LATEST_DATE

dh mein Ergebnis wäre:

userID earliest_date latest_date 

1   1.1.2000   1.1.2017 
2   2.2.1990   2.2.1990 

Ich kann dies tun eher ineffizient mit viel Looping aber ich frage mich, ob es einen Weg gibt, diese mit „Gruppe“ zu tun, oder ich habe Anfragen gesehen, die

in Klammern zusätzliche select-Anweisungen zu enthalten scheinen Wenn Jeder kann mir bitte in die richtige Richtung zeigen, ich wäre sehr dankbar.

Vielen Dank.

Nick

Antwort

0

Sie MAX() und MIN() Aggregatfunktion wahrscheinlich

sagen können
select userid, max(`date`) as earliest_date, 
min(`date`) as furthest_date 
from tbl 
group by userid; 
+0

Danke @rahul dass arbeitete wie ein Charme! :) – happysailingdude

Verwandte Themen