表里的内容如下所示,各个时间的risk值,time是TimeStamp类型,现在我想查出来每个小时内的risk值的总和+----+------+---------------------+
| ID | risk | time |
+----+------+---------------------+
| 1 | 10.5 | 2008-06-15 12:34:07 |
| 2 | 30.4 | 2008-06-15 12:34:18 |
| 3 | 9.1 | 2008-06-15 12:38:24 |
| 4 | 25 | 2008-06-14 09:39:00 |
| 5 | 11.7 | 2008-06-14 13:39:16 |
| 6 | 13.3 | 2008-06-14 13:40:09 |
+----+------+---------------------+
结果如下:
50 //2008-06-15 12时的
25 //2008-06-14 09时的
25 //2008-06-14 13时的
有没有什么好的方法?我试过select SUM(risk) from test where time like '2008-06-15 12:%';
这样的话只能查出来一个
50 //2008-06-15 12时的
如果值很多的话得用很多次查询,能不能一次就查出来??谢谢大家了
| ID | risk | time |
+----+------+---------------------+
| 1 | 10.5 | 2008-06-15 12:34:07 |
| 2 | 30.4 | 2008-06-15 12:34:18 |
| 3 | 9.1 | 2008-06-15 12:38:24 |
| 4 | 25 | 2008-06-14 09:39:00 |
| 5 | 11.7 | 2008-06-14 13:39:16 |
| 6 | 13.3 | 2008-06-14 13:40:09 |
+----+------+---------------------+
结果如下:
50 //2008-06-15 12时的
25 //2008-06-14 09时的
25 //2008-06-14 13时的
有没有什么好的方法?我试过select SUM(risk) from test where time like '2008-06-15 12:%';
这样的话只能查出来一个
50 //2008-06-15 12时的
如果值很多的话得用很多次查询,能不能一次就查出来??谢谢大家了
select SUM(risk) as total from test where 1 group by hour(`time`);
不错,谢谢了
不过,如果不是同一天的呢,不应该加在一起吧
如:
+----+------+---------------------+
| ID | risk | time |
+----+------+---------------------+
| 1 | 10.5 | 2008-06-15 12:34:07 |
| 2 | 30.4 | 2008-06-15 12:34:18 |
| 3 | 9.1 | 2008-06-15 12:38:24 |
| 4 | 25 | 2008-06-14 09:39:00 |
| 5 | 11.7 | 2008-06-14 13:39:16 |
| 6 | 13.3 | 2008-06-14 13:40:09 |
| 7 | 10 | 2008-06-14 12:34:00 |
+----+------+---------------------+
又多了一个2008-06-14日的,不能和2008-06-15日的加在一起,结果应该是:
50 //2008-06-15 12时的
25 //2008-06-14 09时的
25 //2008-06-14 13时的
10 //2008-06-14 12时的
这样的话要怎么办呢?
select SUM(risk) as total from test where 1 group by to_days(`time`),hour(`time`);