2017-01-04 82 views
6

我需要一点MySQL帮助。我有一个小时值的表像:MySQL总计每个X行

ID | VALUE | HOUR 
1 | 1.0 | 01.00 
2 | 1.0 | 02.00 
... 
24 | 1.0 | 24.00 

现在我发现,有时候,我得到的数据是不是在每小时的基础,但它是每30分钟或有时每隔15分钟。因此,该数据可以是这样的:

ID | VALUE | HOUR 
1 | 1.0 | 01.00 
2 | 1.0 | 01.30 
... 
48 | 1.0 | 24.00 

我需要显示在每小时格式的数据,所以我很好奇,如果有任何机会告诉MySQL来总结每两(30分钟格式)或每4 (15分钟格式)行结果?

+0

那你试过吗? – denny

+0

小时部分。那是一个字符串......数字..? – Danieboy

回答

5

是的,你可以使用FLOOR(向下取整)或CEIL(舍入),要看你喜欢什么:

SELECT FLOOR(t.hour) as rounded_hour, 
     SUM(t.value) as your_sum 
FROM YourTable t 
GROUP BY FLOOR(t.hour) 

E.G.

1.0 
1.2 
1.75 
1.9 

将全部变成1。

0

这种查询可以帮助您:

Select ID,sum(Value),sum(Hour),substr(hour,1,2)as h group by h;