В результатах подзапроса нет столбца Gender
:
SELECT DISTINCT UserID FROM user_stats where Year='2019' and Account='P'
, как вы можете подумать.То, что вы делаете, сравнивает 2 строки: "Gender"
и 'female'
, которые явно не равны, так что это:
IF("Gender" = 'female', 1, NULL)
возвращает NULL
и COUNT(NULL)
возвращает 0
.Где находится столбец Gender
?Это в user_stats
таблице или в другой таблице, как Users
?Если он находится в user_stats
, то вам нужно написать запрос следующим образом:
select
sum(t.gender = 'female') ufemale,
sum(t.gender = 'male') umale
from (
select distinct userid, gender
from user_stats
where Year='2019' and Account='P'
) t
Если он находится в таблице users
, то сначала вам понадобится объединение:
select
sum(u.gender = 'female') ufemale,
sum(u.gender = 'male') umale
from (
select distinct userid, gender
from user_stats
where Year='2019' and Account='P'
) t inner join users u
on u.userid = t.userid