数据库bus中的表table01,需要用到其中的两列
ID time
2 2010-02-01 01:01:01
1 2010-02-01 01:01:02
2 2010-02-01 01:02:20
1 2010-02-01 01:05:16
3 2010-02-01 01:05:28
1 2010-02-01 01:15:39
3 2010-02-01 01:18:53
2 2010-02-01 01:22:21
2 2010-02-01 01:23:15
1 2010-02-01 01:36:10
3 2010-02-01 01:39:33
…………
3 2010-02-01 01:51:55
1 2010-02-01 01:52:10
1 2010-02-01 01:56:35
2 2010-02-01 01:58:26
3 2010-02-01 01:59:59
用SQL语句 SELECT Id, count(*) AS '2010-02-01 01:00:00-01:09:59' FROM `bus`.`table01` where time between '2010-02-01 01:00:00' and '2010-02-01 01:09:59' group by Id; 只能一次统计一个十分钟,现在想统计并列出每10分钟各ID的出现的次数,请问可以通过SQL语句实现么?
想要的效果是这样的:
ID 2010-02-01 01:00:00-01:09:59 2010-02-01 01:10:00-01:19:59 2010-02-01 01:00:00-01:09:59 ……
1 2 2 1 ……
2 0 2 0 ……
3 1 0 1 ……求助各位高手?感激不尽!
ID time
2 2010-02-01 01:01:01
1 2010-02-01 01:01:02
2 2010-02-01 01:02:20
1 2010-02-01 01:05:16
3 2010-02-01 01:05:28
1 2010-02-01 01:15:39
3 2010-02-01 01:18:53
2 2010-02-01 01:22:21
2 2010-02-01 01:23:15
1 2010-02-01 01:36:10
3 2010-02-01 01:39:33
…………
3 2010-02-01 01:51:55
1 2010-02-01 01:52:10
1 2010-02-01 01:56:35
2 2010-02-01 01:58:26
3 2010-02-01 01:59:59
用SQL语句 SELECT Id, count(*) AS '2010-02-01 01:00:00-01:09:59' FROM `bus`.`table01` where time between '2010-02-01 01:00:00' and '2010-02-01 01:09:59' group by Id; 只能一次统计一个十分钟,现在想统计并列出每10分钟各ID的出现的次数,请问可以通过SQL语句实现么?
想要的效果是这样的:
ID 2010-02-01 01:00:00-01:09:59 2010-02-01 01:10:00-01:19:59 2010-02-01 01:00:00-01:09:59 ……
1 2 2 1 ……
2 0 2 0 ……
3 1 0 1 ……求助各位高手?感激不尽!
解决方案 »
- 这种复核查询怎么写?
- Query execution was interrupted
- 大家看看这个SQL语句怎么优化
- mysql4.0 默认的字符集是多少?
- Navicat MySQL连接网站数据库
- 求救:can not connect to mysql server(10061)是怎么回事?
- 我用PHP+MYSQL时,MYSQL中是否可以用SELECT SUM(field) from table_name这样的查询语句呢?如果可以的话,返回值怎么读出来呢?
- c++往mysql longtext字段存字符串问题
- 从mysql、oracle、sqlserver、db2里取数据,怎样取最快?
- 关于ORZDBA 工具里面的 TPS QPS 流量 解读
- 关于SELECT巨慢的问题
- 下面两句sql有什么不同么
sum(if(time between '2010-02-01 01:00:00' and '2010-02-01 01:09:59',1,0)) as '2010-02-01 01:00:00-01:09:59',
sum(if(time between '2010-02-01 01:10:00' and '2010-02-01 01:19:59',1,0)) as '2010-02-01 01:10:00-01:19:59',
sum(if(time between '2010-02-01 01:20:00' and '2010-02-01 01:29:59',1,0)) as '2010-02-01 01:20:00-01:29:59',
...
sum(if(time between '2010-02-01 01:50:00' and '2010-02-01 01:59:59',1,0)) as '2010-02-01 01:50:00-01:59:59',
from `bus`.`table01`
group by Id;
MySQL交叉表
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。