首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

where in 里条件疑点

2013-12-16 
where in 里条件疑问1、表m1中有字段 key_id,total_sqm,processing_number等字段,需要统计,select sum(tota

where in 里条件疑问
1、表m1中有字段 key_id,total_sqm,processing_number等字段,需要统计,
select sum(total_sqm) as sqm from m1 
where processing_number in ('60','70','80','120','140','150')

2、如果m1表上有几十万条数据,其中'70','120','150','80','140','60'现在的频率差别较大,
'70'--》10%,'80'-->70%,其他占20%

3、如果in条件里写的顺序没有按数据出现的频率的写,是否对效率有影响? 请教。






[解决办法]
在一个in里面的话,顺序没影响
[解决办法]
不影响。
in的本质就是
join (select x='11' union all select '22' unino ....) b
on  processing_number=x

[解决办法]
另外:
1、表m1中有字段 key_id,total_sqm,processing_number等字段,需要统计,
select sum(total_sqm) as sqm from m1 
where processing_number in ('60','70','80','120','140','150')

2、如果m1表上有几十万条数据,其中'70','120','150','80','140','60'现在的频率差别较大,
'70'--》10%,'80'-->70%,其他占20%

这种情况,就是全表扫描了,性能不会太好。

可以考虑建个索引,按照processing_number,total_sqm 字段建个符合索引,这样只需要扫描索引,速度应该会更快点

热点排行