高级嵌套分组查询统计
表A的内容如下:
编号 类别 数值
1 A 90
2 A 75
3 A 85
4 B 88
5 C 100
6 C 60
要求最后的查询结果为:
类别 总数量 数值 <90的个数 数值 <80的个数
A 3 3 1
B 1 1 0
C 2 1 1
即分别统计各类别的总数量和各类别在不同的数值段的个数,怎样用SQL语句进行查询呢?用
select 类别,count(*) as 总数量 from A group by 类别
只能进行总数量的统计,怎样同时查询各类别在不同的数值段的个数?
------解决方案----------------------access与SQL Server不同,应按如下:
select
类别,
count(*) as 总数量,
sum(iif(数值 <=90,1,0)) as [数值 <90的个数],
sum(iif(数值 <80,1,0)) as [数值 <80的个数],
sum(iif(80 <数值 and 数值 <90,1,0)) as [80 <数值 <90的个数]
from A
group by 类别