SQL JOIN父母和孩子和GET父母和孩子记录计数
问题描述:
我有这个查询,这给我很难找出问题,你的建议表示赞赏。SQL JOIN父母和孩子和GET父母和孩子记录计数
SELECT
cooperatives.island, cooperatives.id,
COUNT(
CASE WHEN members.gender = 'Male' THEN 1 ELSE NULL END
) AS males,
COUNT(
CASE WHEN members.gender = 'Female' THEN 1 ELSE NULL END
) AS females,
COUNT(members.gender) AS genderall
FROM
cooperatives
JOIN members ON cooperatives.id= members.c_id
WHERE
1 = 1
GROUP BY
cooperatives.island
什么我试图做的是让导致这样
这是工作,但我需要添加有另一列,它会显示一些合作社从各岛。
答
我怀疑你想:
SELECT c.island, COUNT(DISTINCT c.id) as num_cooperatives,
SUM(m.gender = 'Male') AS males,
SUM(m.gender = 'Female') AS females,
COUNT(m.gender) AS genderall
FROM cooperatives c JOIN
members m
ON c.id = m.c_id
GROUP BY c.island;
+0
谢谢研究员这是我失踪的 –
时,当计数则不要使用else语句您正在使用的情况。 –