MySQL 怎么做 二维统计?如何 将列内的数据求和,行内的数据求和
目前是这样的有这样一个表:
ID F1 F2 F3 …… F200
1# 7 3 6 7
2# 5 21 1 2
6# 4 1 2 1
14# 5 2 2 1
24# 3 3 1 2
6# 1 5 8 4
1# 2 8 2 1
… … … … … …
3# 1 14 2 … 0
要做出这样的二维统计,按设备号划分排列:
ID F1 F2 F3 …… F200 sum
1# 127 310 146 227 1052# 235 215 145 226 241
3# 254 122 255 198 864# 225 214 269 122 158
5# 310 243 199 122 1626# 169 125 148 314 179
7# 214 328 211 124 281… … … … … … …
33# 137 147 122 … 220 125 1136 1278 1231 … 1186 10025
我用了这样一种方法来统计
select ID,sum(F1) as F1 ,sum(F2) as F2 ,sum(F3) as F3 ……sum(F200) as F200,sum(F1+F2+.....+F200) as sum from tableF group by ID with rollup ;
但这样的方法很慢,我统计146w条记录花了48s。好恐怖。我给记录加时间字段,然后在SQL语句中加入时间限定条件:
select ID,sum(F1) as F1 ,sum(F2) as F2 ,sum(F3) as F3 ……sum(F200) as F200,sum(F1+F2+.....+F200) as sum from tableF where time between time1 and time2 group by ID with rollup ;
我给她一个时间范围[time1,time2] 这段时间范围内的记录数大概 7万左右,但是搜索速度还是 40几秒,并没有相比查整个时间范围少多少。
我之后把数据库的容量减少到14w,这时候统计14w条 耗时2.56s ,我改时间限定范围 这个范围内 记录为7000多条,耗时0.48s,改成范围内为1400条 ,耗时为0.36s 改成200 耗时为.032s
这样的速度还是不能满足,请问我该如何做?
ID F1 F2 F3 …… F200
1# 7 3 6 7
2# 5 21 1 2
6# 4 1 2 1
14# 5 2 2 1
24# 3 3 1 2
6# 1 5 8 4
1# 2 8 2 1
… … … … … …
3# 1 14 2 … 0
要做出这样的二维统计,按设备号划分排列:
ID F1 F2 F3 …… F200 sum
1# 127 310 146 227 1052# 235 215 145 226 241
3# 254 122 255 198 864# 225 214 269 122 158
5# 310 243 199 122 1626# 169 125 148 314 179
7# 214 328 211 124 281… … … … … … …
33# 137 147 122 … 220 125 1136 1278 1231 … 1186 10025
我用了这样一种方法来统计
select ID,sum(F1) as F1 ,sum(F2) as F2 ,sum(F3) as F3 ……sum(F200) as F200,sum(F1+F2+.....+F200) as sum from tableF group by ID with rollup ;
但这样的方法很慢,我统计146w条记录花了48s。好恐怖。我给记录加时间字段,然后在SQL语句中加入时间限定条件:
select ID,sum(F1) as F1 ,sum(F2) as F2 ,sum(F3) as F3 ……sum(F200) as F200,sum(F1+F2+.....+F200) as sum from tableF where time between time1 and time2 group by ID with rollup ;
我给她一个时间范围[time1,time2] 这段时间范围内的记录数大概 7万左右,但是搜索速度还是 40几秒,并没有相比查整个时间范围少多少。
我之后把数据库的容量减少到14w,这时候统计14w条 耗时2.56s ,我改时间限定范围 这个范围内 记录为7000多条,耗时0.48s,改成范围内为1400条 ,耗时为0.36s 改成200 耗时为.032s
这样的速度还是不能满足,请问我该如何做?
...全文
相关推荐
如何使用MySQL查询某个列中相同值的数量统计
数据现在是这样的,我想确定出type列中的news和image。。。。甚至以后有其他值,他们分别有多少个。 SELECT type, count(1) AS counts FROM material GROUP BY type count(1),代表统计第一列,写上1 比写 *的效率高! 以上所述就是本文的全部内容了,希望大家能够喜欢。 您可能感兴趣的文章:MySQL 统计查询实现代码MYSQL中有关SUM字段按条件统计使用IF函数(case)问题利用MySQL统计一列中不同值的数量方法示例单个select语句实现MySQL查询统计次
mysql查询根据列按条件统计总数
mysql可以查询根据某列按条件统计总数
mysql求和函数使用示例
求和函数在某些有计算的情况下会使用到,在本将为大家介绍下mysql中时如何实现求和的,感兴趣的朋友可以参考下,希望对大家有所帮助
mysql varchar类型求和实例操作
在本文里我们给大家分享了关于mysql varchar类型求和实例操作以及相关知识点,需要的朋友们学习参考下。
如何统计MySQL数据量大小
目录 如何统计MySQL数据量大小 CONCAT函数解读 换汤不换药,对所有库的查询 information_schem库 performance_schema库


