繁体   English   中英

如何通过在 SQL 中连接两个表来获得计数

[英]how to get count from joining two tables in SQL

经理的数量不正确,如何更正?

select BATS.MANAGER,
  count(BATS.MANAGER)
from BATS
join BATS_HIERARCHY
  on BATS.MANAGER_EMAIL = BATS_HIERARCHY.MANAGER_EMAIL
GROUP BY MANAGER

如果经理的电子邮件在两个表中,尝试计算经理出现的次数

如果我不得不猜测,请按照评论说:提供更多信息,我会说您在 BATS_HIERARCHY 上的关节 BATS 不是 1 比 1。

也许有些经理有多封电子邮件或没有。 这将解释您的“不正确”结果。 尝试FULL joincount(distinct bats.manager)并查看结果是否有任何不同

因此,如果电子邮件存在于两个表中,则经理出现在 BATS 表中的次数:

SELECT
  BATS.MANAGER, COUNT(BATS.MANAGER)
FROM
  BATS
WHERE
  EXISTS (SELECT 1 FROM BATS_HIERARCHY WHERE BATS.MANAGER_EMAIL = BATS_HIERARCHY.MANAGER_EMAIL)
GROUP BY BATS.MANAGER;

这可能会做到,但我还没有测试过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM