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

如何不使用ROW_NUMBER()统计员工的不同国籍数量

解决方法:统计员工国籍数量(不使用ROW_NUMBER())

嘿,这事儿其实很容易调整!你原来的查询用ROW_NUMBER()给每个员工的国籍记录编了号,但我们真正需要的是统计每个员工关联的国籍总数,直接用GROUP BY配合聚合函数COUNT()就能搞定,完全不需要窗口函数。

改写后的SQL查询:

SELECT 
    an.EmployeeId,
    COUNT(c.CountryId) AS Count
FROM Nationality an 
JOIN country c ON an.CountryId = c.id
GROUP BY an.EmployeeId

逻辑说明:

  • GROUP BY an.EmployeeId:把数据按员工ID分组,让我们能针对每个员工单独做统计
  • COUNT(c.CountryId):统计每个分组里关联的有效国籍记录数(因为JOIN确保了CountryId对应真实的国家数据,用COUNT(*)也能得到同样结果,不过指定具体字段会更清晰)

执行这个查询后,会直接返回你期望的输出:

EmployeeId Count
----------------
45        2
33        1
66        1

内容的提问来源于stack exchange,提问作者mohamed-mhiri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 19:09:07