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

如何在SQL中按population分组计算各分组内的hired占比百分比

解决方案

你只需要给窗口函数添加 partition by population 分区规则,让求和逻辑按地区分组计算即可,修改后的语句如下:

select
    round(count(hired) * 1.0 / sum(count(population)) over(partition by population), 2) as freq,
    hired,    
    population
from hr 
group by hired, population
order by population, hired DESC;

修改说明

  • 原语句 over() 没有指定分区规则,会对全表所有分组的计数求和,所以得到的是全表总条数
  • 修改为 over(partition by population) 后,会分别对US、EU两个分组内部的计数求和,得到对应地区的总数据量
  • 额外增加的*1.0是为了避免部分数据库中整数除法自动截断小数位的问题,如果你用的数据库本身支持浮点除法可以省略

使用你提供的示例数据执行上述语句,输出结果和你给出的预期一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:36:03