Mysql 如何从两个按查询分组的列中划分两个求和列?
我有以下疑问:Mysql 如何从两个按查询分组的列中划分两个求和列?,mysql,Mysql,我有以下疑问: SELECT DATE_FORMAT(created_at,'%Y-%m-%d %H:00:00') date, SUM(quantity) total FROM request_items GROUP BY HOUR( created_at ) 它通过将一小时内的所有数量相加生成报告。 所以我得到了这样的东西: 2017-04-01 00:00:00 | 10 2017-04-01 01:00:00 | 05 通过这个,我得到了以下请求:
SELECT
DATE_FORMAT(created_at,'%Y-%m-%d %H:00:00') date,
SUM(quantity) total
FROM request_items
GROUP BY HOUR( created_at )
它通过将一小时内的所有数量相加生成报告。
所以我得到了这样的东西:
2017-04-01 00:00:00 | 10
2017-04-01 01:00:00 | 05
通过这个,我得到了以下请求:
SELECT
DATE_FORMAT(created_at,'%Y-%m-%d %H:00:00') date,
COUNT(id) total
FROM requests
GROUP BY HOUR( created_at )
原理是一样的,但现在我需要按小时分组的请求的平均项数`(项数/请求数),我不知道怎么做。如果需要平均数,请使用
AVG()
:
注意:您不应该按小时分组而不带日期——除非您希望合并不同日期的小时。这似乎不太可能,因为您选择的是整个日期。编辑您的问题并提供示例数据
SUM(id)
看起来真的很可疑。我不得不更改一点示例的代码,确实是count(id)
SELECT DATE_FORMAT(created_at, '%Y-%m-%d %H:00:00') as date,
AVG(quantity) as avg_quantity
FROM items
GROUP BY DATE(created_at), HOUR( created_at );