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

高级嵌套分组查询统计,该如何处理

2012-04-07 
高级嵌套分组查询统计表A的内容如下:编号类别数值1A902A753A854B885C1006C60要求最后的查询结果为:类别总

高级嵌套分组查询统计
表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 类别

热点排行