尝试找到一种计算行的方法,而不对它们进行分组。因为如果我按小时(日期)分组,那么它只会缩小结果。相反,我希望计算行并将该行的任何行添加到该行的过去一小时内。
date
-------------------
2017-11-01 03:43:00
2017-11-01 03:45:00
2017-11-04 14:14:00
2017-11-04 15:01:00
2017-11-04 15:08:00
2017-11-04 15:12:00
2017-11-04 15:16:00
date count
------------------- -------------------
2017-11-01 03:43:00 1
2017-11-01 03:45:00 2
2017-11-04 14:14:00 1
2017-11-04 15:01:00 2
2017-11-04 15:08:00 3
2017-11-04 15:12:00 4
2017-11-04 15:16:00 3
答案 0 :(得分:0)
为此,您可以使用“相关子查询”
select
`date`
, (select count(*) from yourtable t2
where t2.`date`>= date_sub(t1.`date - INTERVAL 1 HOUR) and t2.`date` <= t1.`date`
) as `count`
from yourtable t1
请注意,如果您希望严格计算“过去的行”,请使用less than
,而不是查询中的less than or equal
。