本指南示範如何在 SQL 資料庫中有效地選擇多個列的唯一組合。 當您需要基於特定值組合的不同行時,就會出現這種需求。
方法一:利用SELECT DISTINCT
最簡單的方法是使用 DISTINCT
關鍵字。這會根據指定的列直接選擇唯一的行。
例如,要從 saleprice
表中取得 saledate
和 sales
的唯一組合:
SELECT DISTINCT saleprice, saledate FROM sales;
方法二:將DISTINCT
與GROUP BY
雖然 DISTINCT
單獨足以進行簡單的唯一行選擇,但將其與 GROUP BY
結合使用可提供更多控制和靈活性,特別是在需要進一步數據操作時。 GROUP BY
依照指定的欄位將行分組,並且 DISTINCT
確保每組僅傳回一行。 此方法對於更複雜的場景特別有用。
方法三:使用子查詢進行進階操作
子查詢提供了一種強大的機制來選擇唯一的組合,特別是當您需要在更新或過濾之前對分組資料執行其他操作時。
例如,考慮根據 status
和 saleprice
更新 saledate
欄以取得唯一銷售額:
UPDATE sales SET status = 'ACTIVE' WHERE id IN ( SELECT id FROM sales S INNER JOIN ( SELECT saleprice, saledate FROM sales GROUP BY saleprice, saledate HAVING COUNT(*) = 1 ) T ON S.saleprice = T.saleprice AND S.saledate = T.saledate );
此查詢的子查詢使用 saleprice
和 saledate
標識唯一的 GROUP BY
和 HAVING COUNT(*) = 1
組合。然後主查詢將對應銷售記錄的 status
更新為「ACTIVE」。 這種方法允許在更新表之前進行靈活的資料操作和過濾。 HAVING
子句確保僅考慮真正唯一的組合(僅出現一次的組合)。
以上是如何在 SQL 中選擇多列的唯一組合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!