Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我是否正确计算了一周中每天每小时的平均收入?_Mysql_Sql_Average_Datediff_Weekday - Fatal编程技术网

Mysql 我是否正确计算了一周中每天每小时的平均收入?

Mysql 我是否正确计算了一周中每天每小时的平均收入?,mysql,sql,average,datediff,weekday,Mysql,Sql,Average,Datediff,Weekday,使用查询计算每周每天每小时的平均收入 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是员工每次进入办公室时的唯一密钥 如果员工重复进入办公室,则会有许多相同用户id的记录

使用查询计算每周每天每小时的平均收入

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是员工每次进入办公室时的唯一密钥
  • 如果员工重复进入办公室,则会有许多相同用户id的记录
  • 在此问题中,已完成的任务很可能未使用
我是否恰当地回答了这个问题

我关心的事情:

1) DATEDIFF是否只返回整数值?如果是这样的话,那么为了更好地估计平均收入,这是否意味着我们应该使用DATEDIFF(分钟,…),然后用该整数的小数点计算小时数

2) 我需要担心的是夜班工作的人吗?这个问题会变得复杂多少

3) 如果我被要求“计算上午9点到下午5点的平均每小时收入”,这是否意味着我需要计算每个员工的平均收入。。。或者对于每个小时(即,我最终是按小时还是按用户ID分组)?

1)使用timediff()

2)你不仅需要考虑过夜的变动,而且如果在一个星期的开始日期和周末结束日期之间工作40小时,你就需要考虑加班工资。这仅适用于向员工支付不同小时工资的情况(例如,工时半)。如果这是一个因素,那么你需要卷起袖子,因为这将是一个完整的算法

3) 这取决于您试图通过什么(用户、日期等)找到平均值,但一个简单的方法是只嵌套您的select并获取一个avg()

1) 使用timediff()

2)你不仅需要考虑过夜的变动,而且如果在一个星期的开始日期和周末结束日期之间工作40小时,你就需要考虑加班工资。这仅适用于向员工支付不同小时工资的情况(例如,工时半)。如果这是一个因素,那么你需要卷起袖子,因为这将是一个完整的算法

3) 这取决于您试图通过什么(用户、日期等)找到平均值,但一个简单的方法是只嵌套您的select并获取一个avg()


你需要得到任何人的指导,他们希望你如何处理“非营业时间”。我猜他们想要当天/8小时的总收入。等等……我明白你的意思了。实际上,你需要计算时间日志并将其相加,然后将收益除以它。如果是这样的话,那么不要担心夜班,因为他们只是想知道每个用户每小时挣多少美元。我猜你会想要平均每用户每小时挣多少美元。但是我没有这个要求。如果我有时间的话,我明天去看看。这是课堂作业吗?不,我不在学校。只是一个练习题集,一位朋友让我从初级SQL阶段发展到中级查询阶段。你需要任何人的指导,他们希望你如何处理“非工作时间”。我猜他们想要当天/8小时的总收入。等等……我明白你的意思了。实际上,你需要计算时间日志并将其相加,然后将收益除以它。如果是这样的话,那么不要担心夜班,因为他们只是想知道每个用户每小时挣多少美元。我猜你会想要平均每用户每小时挣多少美元。但是我没有这个要求。如果我有时间的话,我明天去看看。这是课堂作业吗?不,我不在学校。只是一个练习题集,一个朋友让我从初级SQL阶段发展到中级查询阶段。顺便说一句,工资永远不会浮动。这就是十进制被发明的原因。顺便说一句,工资永远不会浮动。这就是十进制被发明的原因。
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])