繁体   English   中英

我是否可以按星期正确计算每小时平均收入?

[英]Am I calculating average income per hour by day of week correctly?

数据表看起来像这样

使用查询来计算星期几的每小时平均收入。

SELECT WEEKDAY(date_start_time), SUM(total_income)/SUM(DATEDIFF((hour, 
date_start_time, date_end_time) AS avg_income
FROM Deliveries
GROUP BY WEEKDAY(date_start_time)

要知道的事情:

  • Entry_id是员工每次进入办公室时的唯一键
  • 如果一名员工反复进入办公室,将会有许多相同的user_id记录
  • 完成的任务很可能在此问题中不使用

我是否适当回答了这个问题?

我担心的事情:

1)DATEDIFF是否仅返回整数值? 如果是这样,那么要对avg_income进行更好的估算,这是否意味着我们应该使用DATEDIFF(minutes,...,...),然后从该整数计算带小数位的小时?

2)过夜工作的人是否需要轮班我需要担心的事情? 这个查询会变得更加复杂吗?

3)如果我被要求“计算上午9点至下午5点的每小时平均收入”,那是否意味着我需要为每个员工...或每个小时计算(即最终我是按小时分组)或通过user_ID)?

1)使用timediff()

2)您不仅需要考虑隔夜班次,而且如果给定一周的工作在开始日期到结束日期之间的时间超过40小时,则需要考虑加班费。 仅当员工为此获得不同小时工资(例如半小时)时。 如果这是一个因素,那么您将需要袖手旁观,因为这将是一个完整的算法。

3)这取决于您要查找的平均值(用户,天数等),但是一种简单的方法是仅嵌套选择并获取avg()。

select avg(earnings) overall_average from 
(select user, [calculated_earnings] as earnings from [table] where [conditions])

select avg(earnings) overall_average from 
(select weekday, [calculated_earnings] as earnings from [table] where [conditions])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM