如上述資料,我們分別要找出S001,亂馬客,2010/04/01、S002,造雨人,2010/03/01及S003,阿光,2010/05/01的資料! 因為要最大值,所以使用GROUP+MAX函式來處理!實際操作應用方法如下:
SELECT A.S_ID, A.S_NAME, MAX(A.REG_DATE) AS MAX_REG_DATE FROM [STUDENT1] A (NOLOCK)
GROUP BY A.S_ID, A.S_NAME
增加其他欄位
若使單純查詢相對應的最大值欄位與GRROUP欄位,這樣的以上方式是沒問題,但若是加上其他欄位你會發現,其他欄位它並不會理會最大值的查詢,若想要這樣的結果您需要重新考慮您的查詢方法,以下範例就可解決這樣的問題,可同時使用MAX()函數找出重覆欄位最大值,GROUP並顯示其他所需要欄位。
SELECT t.Train, t.Dest, r.MaxTime
FROM (
SELECT Train, MAX(Time) as MaxTime
FROM TrainTable
GROUP BY Train
) r
INNER JOIN TrainTable t
ON t.Train = r.Train AND t.Time = r.MaxTime
分享來源:找出重覆資料中某欄位最大值的資料
參考資料:GROUP BY with MAX(DATE) [duplicate]