表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请问查询语句写法?(最好一次查询能完成)
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
结贴