MySQL总和每X行

Vin*_*ter 6 mysql sql

我需要很少的MySQL帮助.我有一个每小时值的表:

ID | VALUE | HOUR
1  | 1.0   | 01.00
2  | 1.0   | 02.00
...
24 | 1.0   | 24.00
Run Code Online (Sandbox Code Playgroud)

现在我发现有时我得到的数据不是每小时一次,而是每30分钟或有时每15分钟.所以数据看起来像这样:

ID | VALUE | HOUR
1  | 1.0   | 01.00
2  | 1.0   | 01.30
...
48 | 1.0   | 24.00
Run Code Online (Sandbox Code Playgroud)

我需要以小时格式显示数据,所以我很好奇是否有机会告诉MySQL将每两个(30分钟格式)或每四个(15分钟格式)行的结果相加?

sag*_*agi 5

是的,你可以使用FLOOR(Rounds down)或CEIL(Rounds up),取决于你喜欢的:

SELECT FLOOR(t.hour) as rounded_hour,
       SUM(t.value) as your_sum
FROM YourTable t
GROUP BY FLOOR(t.hour)
Run Code Online (Sandbox Code Playgroud)

例如

1.0
1.2
1.75
1.9
Run Code Online (Sandbox Code Playgroud)

一切都会变成1.