[英]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)
要知道的事情:
我是否适当回答了这个问题?
我担心的事情:
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.