Я пытаюсь построить запрос, который говорит мне, сколько разных женщин и мужчин есть в данном наборе данных. Человек идентифицируется номером "tel". Возможно, что один и тот же "tel" появится несколько раз, но "пол tel должен учитываться только один раз!
7136609221 - мужчина,
7136609222 - мужчина,
7136609223 - женщина,
7136609228 - мужчина,
7136609222 - мужчина,
7136609223 - женщина
В примере example_dataset будет указано следующее.
Всего уникальных пол: 4
Всего уникальных мужчин: 3
Всего уникальных женщин: 1
Мой запрошенный запрос:
SELECT COUNT(DISTINCT tel, gender) as gender_count,
COUNT(DISTINCT tel, gender = 'male') as man_count,
SUM(if(gender = 'female', 1, 0)) as woman_count
FROM example_dataset;
На самом деле там две попытки. COUNT(DISTINCT tel, gender = 'male') as man_count
похоже, просто возвращает то же самое, что и COUNT(DISTINCT tel, gender)
- он не учитывает классификатор. И SUM(if(gender = 'female', 1, 0))
подсчитывает все женские записи, но не фильтруется с помощью DISTINCT tels.