方法一:先利用 Group By 取得 Max 值後,在 Join 原表
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 並添加流水號,再透過主查詢將需要的內容取出來
SELECT train, dest, time FROM (
SELECT train, dest, time,
RANK() OVER (PARTITION BY train ORDER BY time DESC) dest_rank
FROM traintable
) where dest_rank = 1
個人比較偏好方法二,簡潔有力呀!
參考來源:GROUP BY with MAX(DATE)
沒有留言 :
張貼留言
注意:只有此網誌的成員可以留言。