在同一SELECT 語句中使用DISTINCT 和ORDER BY
執行SELECT 語句從MonitoringJob降序排列,資料庫可能會傳回重複值。若要在保持指定順序的同時消除重複項,可以使用 DISTINCT 關鍵字。但是,單獨使用 DISTINCT 可能還不夠。
在提供的範例中,單獨使用 DISTINCT 關鍵字無法解決問題,因為 ORDER BY 子句依賴 CreationDate 資料列,該列包含重複值。為了解決這個問題,可以將 MAX() 等聚合函數與 DISTINCT 關鍵字結合使用,以根據特定欄位對結果進行排序,同時仍排除重複項。此外,需要使用 GROUP BY 子句來根據 DISTINCT 操作中使用的欄位建立唯一類別。
適當的解決方案是:
SELECT DISTINCT Category, MAX(CreationDate) FROM MonitoringJob GROUP BY Category ORDER BY MAX(CreationDate) DESC, Category
此修改後的語句將確保重複項透過按MAX(CreationDate) 列排序,然後按類別排序,可以刪除它們,同時保留所需的順序。結果,將獲得所需的輸出,根據最新的 CreationDate 值按降序列出不同的類別。
以上是如何在保持 SQL SELECT 語句中的順序的同時刪除重複行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!