[SQL] SELECT 出多個PK資料表的某個欄位最大值的另一個欄位

  • 363
  • 0
  • 2015-12-20

下面 TABLENAME 是相同的資料表,主要 ID 與 NAME 加起來不可重複,但只想找到每筆 ID 最大修改時間的 NAME,SQL 如下  


  SELECT A.ID,
         MIN (A.NAME) AS NAME 
    FROM TABLENAME A
   WHERE MODIFYDATE =
            (SELECT MAX (MODIFYDATE)
               FROM TABLENAME B
              WHERE     A.ID= B.ID
GROUP BY A.ID

其中 MIN (A.NAME) 只是避免如果真的有重複修改的時間,只取一筆。

2015-12-20 更新

其實這題用排名函數來解,效率很好多!