Арифметическая c операция над подмножествами результатов из оператора SQL groupby - PullRequest
0 голосов
/ 27 января 2020

У меня есть схема с полом (m / f), именем штата (все штаты страны), именем студента и образованием (phd, ms). Я использую следующий запрос, чтобы получить общее количество мужчин или женщин в каждой категории образования для каждого штата.

select sex,education,count(*) from mytable group by education,sex;

Как мне написать запрос, который возвращает соотношение арифметических c (число мужчин и женщин) для каждое образование в каждом штате?

Я пытаюсь получить запрос, который дает мне соотношение полов по уровням образования для каждого штата (я подсчитал выше, но я не мог понять, как сделать арифметическое c деление)

1 Ответ

1 голос
/ 27 января 2020

Вы можете сделать условное агрегирование:

select education, sum(sex = 'male') / nullif(sum(sex = 'female'), 0) ratio
from mytable
group by education
...