考慮在SQL Server 2008中的以下數據庫表:SQL服務器 - 選擇行,刪除重複但保留一行最高日
ActionID (PK) ActionType ActionDate UserID ContentID
1 'Create' '2013-05-26 18:40:00' 1 10
2 'Create' '2013-05-26 18:30:00' 2 10
3 'Edit' '2013-05-26 12:30:00' 5 12
4 'Edit' '2013-05-26 12:25:00' 5 12
5 'Delete' '2013-05-26 12:22:00' 6 12
我想寫一個SQL查詢,通過ContentID
和ActionType
但其中組與最新的ActionDate
行將被返回並忽略其他行,即使它們具有不同的UserID
或其他列值。
那麼它應該返回是:
ActionID (PK) ActionType ActionDate UserID ContentID
1 'Create' '2013-05-26 18:40:00' 1 10
3 'Edit' '2013-05-26 12:30:00' 5 12
5 'Delete' '2013-05-26 12:22:00' 6 12
但我不能完全弄清楚如何編寫查詢,以做到這一點。
它不會讓我堅持WITH操作位ORDER BY,但我可以把它放在後面的SELECT語句。我需要通過ActionDate列進行排序,那麼這將是一種有效的方式嗎? –
@SundayIronfoot:只需將ORDER BY添加到選擇CTE中行的「外部」SELECT中(如我更新的響應所示) - 那就是你需要的嗎? –