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
年代の総数とそれぞれの国のために男性と女性の番号を返すように1つのクエリを実行します。その結果は次のようになります。
country total male female
peru 2 NUL 2
japan 2 1 1
fiji 1 1 NUL
私はdiffernetのクエリの数を試してみましたが、1つのクエリ内のすべての結果を返すことができないし、可能な場合は2つのクエリを使用する必要はありません。
これが私の最後の試みである - 私はその混乱を知っているが、私は何もしようとしていた。誰もが1 SELECT
で上記を行うことができます
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;
を?
THX
+1 @Alex K. –
@Alex K. - それは私の最初の試みでしたが、期待通りに機能しませんでした。 –