我有一個表,看起來有點像這樣: -優化的SQL查詢來刪除行
A B C D
1 2 0 2012-10-05 18:37:00
1 3 0 2012-10-05 20:37:00
1 4 1 2012-04-07 18:37:00
2 1 1 2012-10-05 18:12:40
2 2 0 2012-10-04 18:37:00
2 3 0 2011-10-05 12:37:00
可樂COLB唯一標識一行。但是,它不是主要關鍵。 ColC可以是0或1. ColD是日期時間字段。 我需要只保留10行(或更少)從這個表中有colC爲0和10行(或更少)colC爲1,最大總數沒有。的行數爲20.這10行(每個)是最近的行,即最近的10行(基於colD值),其中0爲colC值。類似地,ColC值保持爲1的(最多)10行應該是具有1個ColC值的前10行。
目前,我正在發射4個查詢以實現此目的。我將每個colC值的查詢分別作爲0和1來獲取第11行(或更少)的時間戳。然後對於獲得的每個值,我激發另一個查詢來刪除所有「較舊」的行。
我可以啓動一個單一的查詢來實現嗎?如果不是,那麼最佳解決方案是什麼?
PS: - 我在我的應用程序中使用活動記錄,將不得不相應地修改查詢。
你有什麼話就可以做什麼?你有沒有工作的查詢? –
我試圖使用groupby命令以某種方式獲取一個查詢中的時間戳值,然後刪除另一個查詢中的行。 –
請顯示該代碼,以便我們能夠提供更多幫助。 –