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

如何计算每位员工每日每工作小时处理订单数?

解决方案

要实现每位员工每日每工作小时处理订单数的计算,需要先统计员工每日订单量,再关联工时表和员工信息表完成计算,以下是对应的SQL语句:

SELECT
    e.employee_id,
    e.name,
    eh.shift_date,
    -- 计算每小时订单处理数,用NULLIF避免除以0的错误
    COUNT(o.order_id) / NULLIF(eh.total_work_in_seconds / 3600, 0) AS order_per_work_hour
FROM
    Employees e
JOIN
    Employee_Hours eh ON e.employee_id = eh.employee_id
LEFT JOIN
    Orders o ON e.employee_id = o.employee_id 
             AND DATE(o.order_date) = eh.shift_date -- 需根据数据库类型调整日期匹配方式,比如SQL Server用CAST(o.order_date AS DATE)
GROUP BY
    e.employee_id,
    e.name,
    eh.shift_date,
    eh.total_work_in_seconds
ORDER BY
    eh.shift_date,
    e.employee_id;

关键细节说明:

  • 用LEFT JOIN关联Orders表,确保员工当日无订单时也能保留记录(此时order_per_work_hour会返回NULL)
  • NULLIF(eh.total_work_in_seconds / 3600, 0)用于规避工时为0时的除以0报错
  • 若订单日期字段包含时间部分,需用日期截断函数(如DATE()、CAST(... AS DATE))与shift_date匹配
  • 分组字段必须包含所有非聚合字段,符合SQL分组规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:57:11