日期:2014-05-17  浏览次数:20619 次

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)