我有一个数据库可以找到每分钟的总位数,并使用 group by
语句对它们进行分组。我想知道,如何使用相同的 group by
语句对每 2 分钟的 totalBits
进行分组和求和?
这是我每分钟分组的一组查询
SELECT SUM(totalBits ) AS totalBits,
EXTRACT( YEAR FROM timeStampID ) AS YEAR,
EXTRACT( MONTH FROM timeStampID ) AS MONTH ,
EXTRACT( DAY FROM timeStampID ) AS DAY ,
EXTRACT( HOUR FROM timeStampID ) AS HOUR ,
EXTRACT( MINUTE FROM timeStampID ) AS MINUTE ,
EXTRACT( SECOND FROM timeStampID ) AS SECOND FROM `ipByteReceive1`
WHERE `timeStampID` > '2013-01-21 08:58:55'
GROUP BY YEAR, MONTH , DAY , HOUR, MINUTE
这是我得到的:
totalBits | YEAR | MONTH | DAY | HOUR | MINUTE
----------+------+-------+-----+------+--------
459 | 2013 | 1 | 21 | 8 | 58
2 | 2013 | 1 | 21 | 8 | 59
17 | 2013 | 1 | 21 | 9 | 00
这就是我想要得到的:
totalBits | YEAR | MONTH | DAY | HOUR | MINUTE
----------+------+-------+-----+------+--------
461 | 2013 | 1 | 21 | 8 | 58
17 | 2013 | 1 | 21 | 9 | 00
提前致谢!
最佳答案
只需更改提取分钟的方式,也以 2 为单位进行分组,然后去掉秒(因为它不再有任何意义)。
SELECT SUM(totalBits ) AS totalBits,
EXTRACT( YEAR FROM timeStampID ) AS YEAR,
EXTRACT( MONTH FROM timeStampID ) AS MONTH ,
EXTRACT( DAY FROM timeStampID ) AS DAY ,
EXTRACT( HOUR FROM timeStampID ) AS HOUR ,
EXTRACT( MINUTE FROM timeStampID ) - MOD(EXTRACT( MINUTE FROM timeStampID ), 2) AS MINUTE ,
WHERE `timeStampID` > '2013-01-21 08:58:55'
GROUP BY YEAR, MONTH , DAY , HOUR, MINUTE
关于mysql - 使用 group by 每 2 分钟对数据进行一次分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14931654/