SQL GROUP+MAX()函式找出重覆資料欄位最大值

6 月 15, 2018 | | 0 comments

sqlimages

如上述資料,我們分別要找出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

sqlimages

增加其他欄位

若使單純查詢相對應的最大值欄位與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]