2017-04-06 51 views
0

我有以下查询:如何从两个分组查询中划分两个总计列?

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) 

的原理是一样的,但现在我需要现在项目的平均量的要求` (项目数/请求数)按小时分组,我不知道该怎么做。

+0

编辑您的问题并提供样本数据。 SUM(id)'看起来很可疑。 –

+0

我不得不改变这个例子的代码,确实是'count(id)' –

回答

0

如果你想平均值,然后用AVG()

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); 

注意:您不应该按小时无日期分组 - 除非你想时间从不同天相结合。这似乎不太可能,因为你正在选择整个日期。