Mysql 根据日期分组查询

来源:互联网 发布:windows phone7.8 编辑:程序博客网 时间:2024/04/27 23:26

基本的思路:
1:一般会根据一年中的十二个月份,一个星期中的每一天,等等
这样的话直接就可以使用from_unixtime(stamp,”%Y-%m”)函数,然后再去group by就行了
2:在某个时间段进行查询,需要学会使用floor 和 substring 具体看下面 然后再去group by就ok了

1:数据如下2:实现的功能是每5分钟一组mysql> select * from tb;+---------------------+------+| t                   | m    |+---------------------+------+| 2007-01-01 10:00:23 |    8 || 2007-01-01 10:01:24 |    4 || 2007-01-01 10:05:00 |    2 || 2007-01-01 10:06:12 |    3 || 2007-01-01 10:08:00 |    1 || 2007-01-01 10:12:11 |    5 |+---------------------+------+

查询语句如下

select concat(substring(t,1,14) ,floor(substring(t,15,2)/5)*5) as tmp,sum(m) from tb group by tmp  order by t;+------------------+--------+| tmp              | sum(m) |+------------------+--------+| 2007-01-01 10:0  |     12 || 2007-01-01 10:5  |      6 || 2007-01-01 10:10 |      5 |+------------------+--------+3 rows in set (0.00 sec)
0 0