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

PostgreSQL计算员工在各项目中的工时占比问题

按项目分组计算员工工时占比的实现方法

下面针对常用工具(Excel、SQL)给出具体实现方案,核心是按项目维度分组统计总工时,和你已掌握的全局占比计算逻辑差异仅在分组范围:

Excel 实现

假设你的数据结构为:

项目工时
项目A20
项目A30
项目B15
项目B15
  1. 新增列(如D列)计算对应项目的总工时,公式:
    =SUMIF(B:B, B2, C:C)
    该公式会匹配当前行的项目,自动统计该项目的所有工时总和。
  2. 新增列(如E列)计算占比,公式:
    =C2/D2
    最后将E列单元格格式设置为「百分比」,即可得到每个员工在对应项目中的工时占比。

SQL 实现

用数据库处理时,通过窗口函数的PARTITION BY子句限定分组范围为项目,替代全局求和的窗口:

SELECT
    员工,
    项目,
    工时,
    -- 按项目分组计算总工时,计算占比并保留两位小数
    ROUND(工时 / SUM(工时) OVER (PARTITION BY 项目) * 100, 2) AS 项目工时占比百分比
FROM
    你的工时表名称;
  • 和全局占比的区别:全局占比使用SUM(工时) OVER (),此处通过PARTITION BY 项目将求和范围限定在当前项目内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:46:27