我正在嘗試構建一個查詢,告訴我在給定數據集中有多少個不同的女性和男性。該人由一個電話號碼標識。同一個'tel'可能出現多次,但'tel的性別只應該被計算一次!如果條件唯一,MySQL不同計數
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;
其實有兩次機會在那裏。 COUNT(DISTINCT tel, gender = 'male') as man_count
似乎只是返回相同的COUNT(DISTINCT tel, gender)
- 它沒有考慮到那裏的限定詞。而SUM(if(gender = 'female', 1, 0))
統計所有女性記錄,但不會被DISTINCT過濾。
你想說什麼作爲回答,當你跑的? –
'COUNT(DISTINCT tel,gender ='male')'錯誤地給出man_count = 4;它應該是3 - 每個電話唯一。 – Federico
SUM(如果(gender ='female',1,0))錯誤地給出了woman_count = 2。它應該是1(每個電話唯一) – Federico