Sql Server怎样进行区间统计?
我有一个有2000000行的表:
sn   value    
1   1.2    
2   5.4    
3   3.8    
4   2.9    
5   7.6    
6   6.5    
7   1.9    
8   8.2    
9   4.3    
10   3.2    
11   9.4    
12   5.3    
13   2.1    
14   7.4    
15   5.5    
16   4.9    
17   8.1    
……   ……    
1999999   4.9    
2000000   7.2    
里面的value是介于1-10之间的数字,怎样进行一个Sql查询得到一个如下表的汇总?
Region   Count    
1-2   178824    
2-3   188113    
3-4   145221    
4-5   324520    
5-6   210515    
6-7   292654    
7-8   289411    
8-9   176141    
9-10   194601    
即统计出Value值分别>=1-<2,>=2-<3,>=3-<4……>=8-<9,>=9-<10之间的个数。
------解决方案--------------------如果只有10个区间就好办咯,下面这个不断union all就可以拉
SQL code
SELECT '1-2' ,COUNT(1) AS count
FROM tablename 
WHERE VALUE >= 1 AND VALUE< 2
UNION ALL
------解决方案--------------------
太简单了,一句话搞定
SQL code
select convert(varchar(2),[value]%10)+'-'+convert(varchar(2),[value]%10+1) Region,count(*) Count from [你的表]
group by [value]%10
------解决方案--------------------
SQL code
SELECT LEFT(value,1)+'-'+LEFT(value+1,1),COUNT(*)
FROM t1
GROUP BY LEFT(value,1)+'-'+LEFT(value+1,1)