ホームページ > データベース > mysql チュートリアル > DISTINCT を使用して SQL の複数の列にわたる値の一意の組み合わせを見つけるにはどうすればよいですか?

DISTINCT を使用して SQL の複数の列にわたる値の一意の組み合わせを見つけるにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-23 05:47:08
オリジナル
227 人が閲覧しました

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

SQL: 複数の列にわたる一意の組み合わせの識別

この記事では、SQL の複数の列にわたる値の一意の組み合わせを見つけるという課題に取り組み、特に非アクティブとしてマークされた販売レコードの更新に焦点を当てます。 目標は、同じ日に同じ価格で発生しなかった販売を特定し、そのステータスを「アクティブ」に更新することです。 単純な DISTINCT 句は単一の列でのみ機能するため、十分ではありません。

GROUP BY 句は強力な解決策を提供します。

SELECT a, b, c FROM t GROUP BY a, b, c;
ログイン後にコピー

これは、列 abc の一意の組み合わせに基づいて行をグループ化し、事実上、複数列 DISTINCT と同じ結果を実現します (ただし、GROUP BY はより多くの機能を提供します)。

販売記録を更新するには、ネストされたクエリが有効です。

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
);
ログイン後にコピー

このクエリは、サブクエリを使用して、一意の salepricesaledate の組み合わせ (COUNT(*) = 1 の場合) で売上を識別します。 次に、外側のクエリはこれらの販売の status を「ACTIVE」に更新します。

GROUP BY とネストされたクエリを使用すると、複数の列にわたる値の一意の組み合わせに基づいてデータを効率的に管理および更新できます。 これにより、複雑なデータ操作タスクを処理するための堅牢かつ正確な方法が提供されます。

以上がDISTINCT を使用して SQL の複数の列にわたる値の一意の組み合わせを見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート