Средняя зарплата для мужчин и женщин, но отдельно - PullRequest
1 голос
/ 01 апреля 2020

Мне нужно: " Написать код SQL, показывающий для каждого штата, в котором работает более одного работника мужского пола и одного работника женского пола, число работников мужского пола и число работников женского пола, средняя заработная плата для мужчин и средняя зарплата для женщин."

Я знаю, что она должна быть сгруппирована по полу, но тогда она ничего не отображает? Что мне делать? Проблема в том, что теперь я получаю среднюю зарплату обоих полов вместе взятых. Я думаю, что остальная часть моего кода в порядке.

SELECT gender, state, AVG(salary),
COUNT(CASE WHEN gender='M' THEN 1  END) AS men,
COUNT(CASE WHEN gender='F' THEN 1  END) AS women
FROM employee
GROUP BY state
HAVING men>1 && women>1
ORDER BY state, gender DESC;

1 Ответ

4 голосов
/ 01 апреля 2020
SELECT state, 
       sum(gender='M') as men_count,
       sum(gender='F') as women_count,
       AVG(case when gender='M' then salary end) as men_avg_sal,
       AVG(case when gender='F' then salary end) as women_avg_sal
FROM employee
GROUP BY state
HAVING sum(gender='M') > 1
   AND sum(gender='F') > 1
ORDER BY state
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...