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

如何按员工汇总指定行号范围的百分比总和?

问题描述

我有一组包含Employee(员工)、Line#(行号)和Pct(百分比)字段的数据集,单个员工可能对应5行、4行等不同数量的百分比数据。我需要按指定行号范围(如1至5、1至4等)对每个员工的Pct进行汇总,但目前的SQL只能单独汇总某一行号的Pct,无法实现行号范围内的整体汇总。

数据集示例

EmployeeLine#Pct
1234110
1234240
1234350
1235150
1235230

预期结果

  • Employee 1234的Pct汇总值为100
  • Employee 1235的Pct汇总值为80

当前使用的SQL代码

SELECT EMPLOYEE, LINE_NBR,SUM(PLAN_PCT)
 FROM dbo.EmpPct
WHERE EMPLOYEE= 1234
GROUP BY LINE_NBR, EMPLOYEE
ORDER BY SUM(PLAN_PCT) DESC

请问如何修改代码以实现按员工及指定行号范围汇总Pct总和?


解决方案

要实现按员工和指定行号范围汇总Pct总和,只需调整SQL的过滤条件与分组逻辑:

  1. 添加行号范围过滤:在WHERE子句中用BETWEEN指定行号的上下限,筛选出需要汇总的行数据。
  2. 调整分组字段:仅按EMPLOYEE分组,不要包含LINE_NBR,确保同一员工的符合条件的Pct被合并计算。
  3. 精简返回字段:SELECT列表移除LINE_NBR,只保留员工ID和汇总后的百分比总和。

修改后的SQL代码(以行号1-3为例):

SELECT EMPLOYEE, SUM(PLAN_PCT) AS Total_Pct
FROM dbo.EmpPct
WHERE LINE_NBR BETWEEN 1 AND 3  -- 按需修改行号范围
GROUP BY EMPLOYEE
ORDER BY Total_Pct DESC
  • 若需要汇总其他行号范围,直接修改BETWEEN后的数值即可(比如1-4就改成LINE_NBR BETWEEN 1 AND 4)。
  • 若不需要限制行号范围,直接删除WHERE LINE_NBR BETWEEN ...这一行,即可汇总每个员工的所有Pct数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:43:04