[英]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.