我的mysql查询返回重复的问题。我不知道为什么。我希望有人能够深入了解并提供建议。
我有两个表xyz1和xyz2
xyz1包含员工数据,而xyz2包含雇佣健康检查。
我想要实现的目标是,我想计算男性就业的健康检查数量。
select COUNT(*) as Num
FROM xyz1
INNER JOIN xyz2
ON xyz1.cid = xyz2.cid
WHERE xyz1.gender = 'male'
它返回重复错误。
请帮忙
答案 0 :(得分:0)
如果您正在尝试查找为您想要的男性员工执行的健康检查次数
SELECT COUNT(*) AS TOTAL_HEALTH_CHECKS_FOR_MALES
FROM XYZ1
INNER JOIN XYZ2
ON XYZ2.CID = XYZ1.CID
WHERE XYZ1.GENDER = 'male'
这是你已经拥有的。
如果您正在尝试确定至少进行过一次健康检查的男性员工人数,那么查询将是
SELECT COUNT(*) AS TOTAL_MALES_WITH_HEALTH_CHECKS
FROM XYZ1
INNER JOIN (SELECT DISTINCT CID
FROM XYZ2) t2
ON t2.CID = XYZ1.CID
WHERE XYZ1.GENDER = 'male'
并且您想知道每个男性员工有多少健康检查您想要使用
SELECT XYZ1.CID, COUNT(*) AS NUMBER_OF_HEALTH_CHECKS
FROM XYZ1
INNER JOIN XYZ2
ON XYZ2.CID = XYZ1.CID
WHERE XYZ1.GENDER = 'male'
GROUP BY XYZ1.CID
祝你好运。