1. ホーム
  2. sql

[解決済み] 列の値が不一致の行をすべて選択する方法

2022-04-14 10:55:37

質問

あるカラムの値が明瞭でないすべての行を返すselect文を実行する必要があります(例:EmailAddress)。

例えば、以下のようなテーブルがあった場合。

CustomerName     EmailAddress
Aaron            [email protected]
Christy          [email protected]
Jason            [email protected]
Eric             [email protected]
John             [email protected]

クエリを返してほしい。

Aaron            [email protected]
Christy          [email protected]
John             [email protected]

多くの投稿を読み、様々なクエリを試しましたが、無駄でした。 動作すると思われるクエリは以下の通りです。 どなたか代替案をご提案いただけるか、あるいは私のクエリに何か問題があるのか教えていただけないでしょうか。

select EmailAddress, CustomerName from Customers
group by EmailAddress, CustomerName
having COUNT(distinct(EmailAddress)) > 1

解決方法は?

よりも大幅に高速化されています。 EXISTS の方法です。

SELECT [EmailAddress], [CustomerName] FROM [Customers] WHERE [EmailAddress] IN
  (SELECT [EmailAddress] FROM [Customers] GROUP BY [EmailAddress] HAVING COUNT(*) > 1)