You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从包含UNION ALL的SELECT查询中获取去重后的计数

问题原因

你最初的统计查询结果不符合预期,是因为UNION ALL会保留两个子查询返回的全部重复部门记录,直接对该结果集执行COUNT(Department)时,统计的是两个表的部门总记录条数,而非去重后的唯一部门数量。

可用解决方案

除了你最终验证可用的嵌套查询写法外,还可以选择两种更简洁的实现方式:

  1. 保留UNION ALL逻辑,在外层统计时增加去重规则
SELECT COUNT(DISTINCT Department) AS DepCount
FROM (
    SELECT Department FROM EFP_EmployeeFollowupManagerCommit
    UNION ALL
    SELECT Department FROM EFP_EmploymentUser
) AS all_departments;
  1. 使用自带去重能力的UNION替代UNION ALL,直接统计结果集行数即可
SELECT COUNT(*) AS DepCount
FROM (
    SELECT Department FROM EFP_EmployeeFollowupManagerCommit
    UNION
    SELECT Department FROM EFP_EmploymentUser
) AS unique_departments;

以上两种写法的返回结果和你最终使用的语句完全一致,可根据使用习惯自行选择。


内容的提问来源于stack exchange,提问作者Stig Kølbæk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:24:03