У меня есть таблица с 3 столбцами: country
, user_id
, gender
.
user_id
просто увеличивается, есть ряд разных стран, и пол либо мужской, либо женский. Похоже на это
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
?
1020 * ТНХ *