2

我有一个数据库,可以找到每分钟的总位数,并使用该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

提前致谢!

4

2 回答 2

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 
于 2013-02-18T08:02:55.483 回答
-1

您应该分组MINUTE - MOD(MINUTE,2)(因此选择它而不是您当前选择的列)。

于 2013-02-18T08:01:47.630 回答