表table1 有id result 字段 假设1000条记录:
20110601 open
20110602 close
.......................
20111600 open现要统计某一周期参数内open close个数对比,然后存进另一个表table2,假设每300条:
字段:
start end open close interval
20110601 20110900 150 160 300
20110901 20111200 140 160 300
20111201 20111500 144 156 300
.....................................
最后剩余的100条记录
20111501 20111600 60 40 100若周期参数为200
start end open close interval
20110601 20110800 100 100 200
20110801 20111000 80 120 200
20111001 20111200 140 60 200
...........................................
20111401 20111600 100 100 200请问查询语句写法?(最好一次查询能完成)
20110601 open
20110602 close
.......................
20111600 open现要统计某一周期参数内open close个数对比,然后存进另一个表table2,假设每300条:
字段:
start end open close interval
20110601 20110900 150 160 300
20110901 20111200 140 160 300
20111201 20111500 144 156 300
.....................................
最后剩余的100条记录
20111501 20111600 60 40 100若周期参数为200
start end open close interval
20110601 20110800 100 100 200
20110801 20111000 80 120 200
20111001 20111200 140 60 200
...........................................
20111401 20111600 100 100 200请问查询语句写法?(最好一次查询能完成)
解决方案 »
- phpMyAdmin为什么会出错?
- 出错 specified key too long / 指定的 key 太长 怎么解决
- SQL 三表联合查询 ?请高手指点 在线等待~~
- mysql 最后支持bdb的是哪个版本?
- MySQL 函数问T,,,,,,返回值为null,,,,,
- is not allowed to connect to this MySQL server 问题??
- [在线等] mysql5,从30万条记录中选出30来条记录,耗时7秒,各位,请问如何解决?
- 关于新版本的mysql的连接问题
- SQL删除不了相同的记录
- 找书 Oracle 8i PL SQL高级程序设计
- 为何top语句报错
- 如何建立数据库表空间
Sum(if(result=’open’,1,0)) as open,
Sum(if(result=’close’,1,0)) as close,
300 as ` interval`
From table1
Group by (id-1) div 300
(id-1) div 300 | start | end | open | close | interval |
+----------------+-------+-------+------+-------+----------+
| 50 | 15249 | 15300 | 27 | 25 | 300 |
| 51 | 15301 | 15600 | 144 | 156 | 300 |
| 52 | 15601 | 15876 | 132 | 144 | 300 249-300 300-600 600-结束 都是从300的整数起始,
这样有点偏离了 最好是 15249-15548 15548-15847 15848-最后
最后问下div的用法 谢谢··
Sum(if(result=’open’,1,0)) as open,
Sum(if(result=’close’,1,0)) as close,
300 as ` interval`
From table1
Group by (id+2) div 300
整数除法。 类似于 FLOOR(),然而使用BIGINT 算法也是可靠的。 mysql> SELECT 5 DIV 2; -> 2
加一加二一样的 div都固定了边界 300的整数加一减一而已
我希望的是 随机的一条记录 n 到 n+299
div都固定了 0-300 300-600 600-900 .....加一减一只是 围绕300上下
(id-15249) div 300最后问下div的用法MYSQL官网下载手册(免费),然后阅读DIV说明.
很简单,突然转不过弯,THANK YOU
结贴