3
我有一張表,其中3列爲country
,user_id
,gender
。 user_id
只是增加,有很多不同的國家和性別是男性或女性。與此相似MySQL - 計算按國家分組的男性和女性的數量
user_id country gender
1 japan male
2 peru female
3 japan female
4 fiji male
5 peru female
我想運行一個查詢返回的國家的唯一列表中,user_id
的面向全國,男性和女性人數每個國家的總數。這樣的結果會是什麼樣子:
country total male female
peru 2 NUL 2
japan 2 1 1
fiji 1 1 NUL
我已經嘗試了一些目前存在的查詢,但在一個查詢無法返回所有結果,不希望儘可能使用2個查詢。
這是我最後一次嘗試 - 我知道它的一個爛攤子,但我想任何事情:
SELECT DISTINCT a.country AS country, COUNT(b.gender) AS male, COUNT(c.gender) AS female, COUNT(a.user_id) AS total
FROM userattributes as a
LEFT JOIN userattributes as b ON a.user_id=b.user_id
LEFT JOIN userattributes as c ON a.user_id=c.user_id
WHERE b.gender='male' AND c.gender='female'
GROUP BY country;
任何人都可以做到上面的一個SELECT
?
THX
+1(也可以使用count(..然後1,否則返回null)) –
@Alex K. - 那是我第一次嘗試,但如我所料沒有奏效。 –