Mysql选择过去48小时内每10分钟记录的总和


mysql select sum of records every 10 minutes past 48 hours

我想创建一个数组的数据与记录的总和在一个mysql表。我需要从现在到过去48小时每10分钟的数据总和。

我在php中有一个工作代码,但是有可能直接在mysql中创建这个查询吗?

for ($p=0;$i<=2880;$p+10){
$sql = "
select sum(rotations) 
  from wheel 
 where time BETWEEN (DATE_ADD(NOW() , INTERVAL - ".$p." MINUTE) AND (DATE_ADD(NOW() ,INTERVAL - ".$p+10." MINUTE)
"; 
}

提前感谢。

您可以将time转换为数字时间戳,然后除以10分钟内的秒数进行分组。

SELECT FROM_UNIXTIME(600 * FLOOR(UNIX_TIMESTAMP(time)/600)) AS start_time, SUM(rotations)
FROM wheel
WHERE time >= DATE_SUB(NOW(), INTERVAL 2 DAY)
GROUP BY start_time