我有一个数据库,可以找到每分钟的总位数,并使用group by
语句对它们进行分组。我想知道,我如何使用相同的group by
语句对totalBits
进行分组并每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 ) 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
提前致谢!
答案 0 :(得分:1)
只需更改提取分钟的方式,然后按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
答案 1 :(得分:-1)
您应该按MINUTE - MOD(MINUTE,2)
进行分组(因此请选择而不是您当前选择的列。)