2017-01-04 123 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;