首頁 > 資料庫 > mysql教程 > 如何使用 DISTINCT 尋找 SQL 中多個列的唯一值組合?

如何使用 DISTINCT 尋找 SQL 中多個列的唯一值組合?

Mary-Kate Olsen
發布: 2025-01-23 05:47:08
原創
207 人瀏覽過

How Can I Use DISTINCT to Find Unique Combinations of Values Across Multiple Columns in SQL?

SQL:辨識多列中的唯一組合

本文解決了在 SQL 中跨多個列查找唯一值組合的挑戰,特別關注更新標記為非活動的銷售記錄。 目標是識別當天未以相同價格發生的銷售,並將其狀態更新為「活動」。 一個簡單的 DISTINCT 子句是不夠的,因為它只適用於單列。

GROUP BY子句提供了一個強大的解決方案:

<code class="language-sql">SELECT a, b, c FROM t GROUP BY a, b, c;</code>
登入後複製

這根據列 abc 的獨特組合對行進行分組,有效地實現與多列 DISTINCT 相同的結果(儘管 GROUP BY 提供了更多功能)。

對於更新銷售記錄,巢狀查詢是有效的:

<code class="language-sql">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
);</code>
登入後複製

此查詢使用子查詢來識別具有唯一 salepricesaledate 組合(其中 COUNT(*) = 1)的銷售額。 然後,外部查詢將這些銷售的 status 更新為「ACTIVE」。

透過使用 GROUP BY 和巢狀查詢,您可以根據跨多個列的值的唯一組合有效地管理和更新資料。 這為處理複雜的資料操作任務提供了一種強大而準確的方法。

以上是如何使用 DISTINCT 尋找 SQL 中多個列的唯一值組合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板