区別のない列値を持つ行のクエリ
SQL では、特定の列の値が次のとおりである行を取得するのが一般的なタスクです。明確ではありません。これは、重複データの特定や異常の検出に役立ちます。
シナリオ例
次のデータを含む Customers という名前のテーブルについて考えます:
CustomerName | EmailAddress |
---|---|
Aaron | [email protected] |
Christy | [email protected] |
Jason | [email protected] |
Eric | [email protected] |
John | [email protected] |
EmailAddress 列が区別できないすべての行を取得するには、次のコマンドを使用できます。 query:
SELECT EmailAddress, CustomerName FROM Customers WHERE EmailAddress IN (SELECT EmailAddress FROM Customers GROUP BY EmailAddress HAVING COUNT(*) > 1)
説明
IN 句は、サブクエリで見つかった EmailAddress 値をフィルタリングします。サブクエリはすべての EmailAddress 値をグループ化し、各値の出現回数をカウントします。次に、HAVING 句は、複数出現するグループ (つまり、明確でない値) のみを選択します。
このアプローチを使用することで、EmailAddress 列が明確でない行を効率的に識別して返します。この方法は、ほとんどの場合、EXISTS 演算子を使用するよりも大幅に高速です。
以上がSQL で一意でない列値を持つ行を検索して取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。