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

SQL如何统计不同员工数量对应的企业数量分布

二次分组统计SQL实现方案

你已经完成了第一步单企业员工数的统计,只需要将该结果作为数据源二次分组即可实现需求,以下是两种可直接套用的写法:

方案1:子查询嵌套写法(兼容所有主流数据库)

SELECT 
  EIdCount AS `EmployeeId Count`,
  COUNT(BusinessId) AS `BusinessId Count`
FROM (
  SELECT 
    BusinessId,
    COUNT(EmployeeId) AS EIdCount
  FROM `Table` -- 替换为你的实际表名
  GROUP BY BusinessId
) AS business_employee_stat -- 子查询必须指定别名,否则会触发语法报错
GROUP BY EIdCount
ORDER BY EIdCount; -- 可选配置,按员工数从小到大排序输出

如果之前你写子查询报错,大概率是内层子查询未指定别名导致,上述代码已补充该配置。

方案2:CTE公共表达式写法(适配MySQL8.0+、PostgreSQL、SQL Server等支持CTE语法的数据库)

可读性更高,适合复杂统计逻辑扩展:

WITH business_employee_count AS (
  SELECT 
    BusinessId,
    COUNT(EmployeeId) AS EIdCount
  FROM `Table` -- 替换为你的实际表名
  GROUP BY BusinessId
)
SELECT 
  EIdCount AS `EmployeeId Count`,
  COUNT(BusinessId) AS `BusinessId Count`
FROM business_employee_count
GROUP BY EIdCount
ORDER BY EIdCount;

补充说明

  • 如果需要统计包含EmployeeId为NULL的关联记录,可以将COUNT(EmployeeId)替换为COUNT(*)
  • 两种写法最终输出的列名完全匹配你的需求,第一列为员工数,第二列为对应员工数的企业数量

内容的提问来源于stack exchange,提问作者morganherg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:06:04