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

技术求助:如何基于给定员工ID列表统计各部门文档提交数量

如何根据员工ID列表统计各部门文档提交数量

我来帮你搞定这个统计需求!你的同事手里有一份提交文档的员工ID清单,但没有对应部门的数据;而你有权限访问包含员工ID和部门映射的workforce表,核心就是要把这两组数据关联起来,才能算出每个部门的提交量。

你之前的查询只单独查了workforce表,没关联同事的提交ID列表,所以肯定得不到正确的提交统计结果。下面给你两种实用的解决方法:


方法1:直接把同事的ID列表写进查询(适合短列表)

如果同事给的ID不多,你可以用UNION ALL把这些ID拼成一个临时的提交记录表,再和你的workforce表关联统计:

SELECT 
    wf.department,
    COUNT(submit.empid) AS 提交数量
FROM 
    (
        -- 把同事给的员工ID逐个填在这里,每个ID对应一行SELECT
        SELECT 'EMP001' AS empid UNION ALL
        SELECT 'EMP002' AS empid UNION ALL
        SELECT 'EMP005' AS empid
        -- 更多ID继续加UNION ALL即可
    ) AS submit
-- 左连接确保即使有些ID在workforce里找不到(比如离职员工)也能被统计
LEFT JOIN 
    workforce wf ON submit.empid = wf.empid
-- 按部门分组统计
GROUP BY 
    wf.department
-- 可选:按提交数量从多到少排序
ORDER BY 
    提交数量 DESC;

小提示:如果同事的ID列表里有重复(同一个员工多次提交),记得把COUNT(submit.empid)改成COUNT(DISTINCT submit.empid),避免重复统计同一个员工。


方法2:先导入ID列表为临时表(适合长列表)

如果同事的ID列表很长,手动写UNION ALL太麻烦,可以让他把ID存成纯文本/CSV文件,你先导入成数据库临时表(比如叫submit_records),然后用下面的查询:

SELECT 
    wf.department,
    COUNT(sr.empid) AS 提交数量
FROM 
    submit_records sr
LEFT JOIN 
    workforce wf ON sr.empid = wf.empid
GROUP BY 
    wf.department
ORDER BY 
    提交数量 DESC;

额外注意事项

  • 确保两边的empid格式完全一致(比如都是字符串、没有大小写差异、没有多余空格),否则会出现关联失败的情况
  • 如果不需要统计那些找不到部门的提交记录,把LEFT JOIN改成INNER JOIN即可
  • 如果想同时看到各部门提交占总提交数的比例,可以加个窗口函数:
    SELECT 
        wf.department,
        COUNT(sr.empid) AS 提交数量,
        COUNT(sr.empid) OVER() AS 总提交数,
        ROUND(COUNT(sr.empid)*100.0/COUNT(sr.empid) OVER(), 2) AS 提交占比
    FROM 
        submit_records sr
    LEFT JOIN 
        workforce wf ON sr.empid = wf.empid
    GROUP BY 
        wf.department
    ORDER BY 
        提交数量 DESC;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:12:45