如何查找每个员工每天每个工作小时的订单



我有三个表。第一个被称为"订单",订单日期与处理订单的员工一起存储。

order_date employee_id
2015年8月1日 101
2015年8月1日 101
2017年8月1日 102
2017年8月1日 119

try:

WITH o AS (
SELECT
employee_id,
order_date,
COUNT(employee_id) AS num_orders
FROM `dataset.Orders`
GROUP BY employee_id, order_date
)
SELECT
o.employee_id,
e.name,
h.shift_date,
SAFE_DIVIDE(o.num_orders, h.total_work_in_seconds/3600) AS order_per_work_hour
FROM o
LEFT JOIN `dataset.Employee_Hours` h ON o.employee_id=h.employee_id AND o.order_date=h.shift_date
LEFT JOIN `dataset.Employees` e ON o.employee_id=e.employee_id

尽管如此,我还没有测试过,因为我的BQ中没有类似的数据。

我认为你需要左联接,因为你的预期输出只有接受订单的工人,但如果不是这样,你可以使用更适合你需求的联接类型。

最新更新