2016-12-04 25 views
1

鑑於這種交易表MySQL的 - 如何按日期

ID Date Name Stat1 
1 1  a  1 
1 2  b  1 
1 3  c  1 
2 4  d  1 
2 5  e  1 

我想組由ID記錄,並有列「名稱」每個組ID顯示最後選擇組第一串by子句按日期顯示的名稱(日期中的高數字按時間順序排列)。最終的結果是:

ID Date Name Stat1 
1 3  c 3 
2 5  e 2 

遺憾的是這樣的代碼:

Select ID,Date,Name,sum(Stat1) 
From myTable 
Group by ID 

會產生「隨機」的名字,
如何強制選擇第一個/最後一個記錄名稱(按日期)各組(ID )?

謝謝

回答

1

你可以用這樣的查詢來做到這一點。如果您想要設置組的第一行或最後一行,請將分鐘數最小化爲最大值:

SELECT result.id,result.mdate,mt.name,result.stat1 
FROM (
    Select ID,min(date) mdate,sum(Stat1) as stat1 
    From myTable 
    Group by ID) AS result 
    LEFT JOIN myTable mt 
    ON mt.id = result.id AND mt.date = result.mdate;