こんにちは。ぽこです!
今回は、あるカラムが同じとき、別カラムの種類が複数あるものを抽出する方法を紹介します。イメージとしては、一人で複数の会員番号を持っている人を抽出する際などに使用します。
実際のコード
次のようなテーブルをイメージします。
会員名 | 会員番号 | 電話番号 | ポイント |
A | 0001 | 111-1111 | 1 |
B | 0002 | 222-2222 | 1 |
C | 0003 | 333-3333 | 1 |
A | 0004 | 111-1111 | 1 |
C | 0003 | 333-3333 | 2 |
ここで、会員名・電話番号が同じ人が、複数の会員番号を持っているケースを抽出したいとき、次のようなコードを実行します。
1 2 3 4 |
SELECT 会員名, 電話番号 FROM 会員テーブル GROUP BY 会員名, 電話番号 HAVING COUNT(DISTINCT 会員番号) > 1 |
GROUP BYで会員名、電話番号が同じデータをまとめ、その中で会員番号の種類が1より大きい→2つ以上あるものに絞り込んで表示します。
COUNT(DISTINCT 会員番号)で、同じ会員番号は1つと数えるので、種類を数えることができます。
上記のコードを実行すると、結果は次になります。
会員番号 | 電話番号 |
A | 111-1111 |