特定のデータセットに何人の女性と男性が存在するかを示すクエリを作成しようとしています。個人は「tel」という番号で識別されます。同じ「tel」が複数回出現する可能性がありますが、その「tel」の性別は 1 回だけカウントする必要があります。
7136609221 - 男性
7136609222 - 男性
7136609223 - 女性
7136609228 - 男性
7136609222 - 男性
7136609223 - 女性
この example_dataset は次のようになります。
一意の性別の総数: 4
一意の男性の総数: 3
一意の女性の総数: 1
私の試みたクエリ:
SELECT COUNT(DISTINCT tel, gender) as gender_count,
COUNT(DISTINCT tel, gender = 'male') as man_count,
SUM(if(gender = 'female', 1, 0)) as woman_count
FROM example_dataset;
そこには実際には2つの試みがあります。COUNT(DISTINCT tel, gender = 'male') as man_count
と同じように返されるようですCOUNT(DISTINCT tel, gender)
-そこの修飾子は考慮されていません。はSUM(if(gender = 'female', 1, 0))
すべての女性レコードをカウントしますが、DISTINCT tels によってフィルタリングされません。