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)