比如有个表:
分类 名称 数量
A类 a 17
A类 b 2
B类 c 5
A类 a 2
A类 a 7
A类 b 12
B类 c 11如何才能统计出如下结果
分类 名称 数量 占分类比 占总数比
A类 a 26 65% 46.43%
A类 b 14 35% 25%
B类 c 16 100% 28.57%谢谢各位高手帮助

解决方案 »

  1.   


    select 
        分类,名称,
        sum(数量) as 数量,
        sum(数量)*1.0/(select sum(数量) from tb b where a.分类=b.分类) as 占分类比,
        sum(数量)*1.0/(select sum(数量) from tb) as 占总数比
    from
        tb a
    group by
       分类,名称
      

  2.   


    --小lee正解
    select 
        分类,名称,
        sum(数量) as 数量,
        sum(数量)*1.0/(select sum(数量) from tb b where a.分类=b.分类) as 占分类比,
        sum(数量)*1.0/(select sum(数量) from tb) as 占总数比
    from
        tb a
    group by
       分类,名称
      

  3.   


    if object_id('t') is not null drop table t
    gocreate table t(
    分类  nvarchar(20),
    名称 nvarchar(20),
    数量 float
    );insert into t values('A类','a',17);
    insert into t values('A类','b',2);
    insert into t values('B类','c',5);
    insert into t values('A类','a',2);
    insert into t values('A类','a',7);
    insert into t values('A类','b',12);
    insert into t values('B类','c',11);select 分类,名称,sum(数量) 数量,
    convert(varchar(20),round(sum(数量)/(select sum(数量) from t t1 where t1.分类=t.分类),4)*100)+'%' 占分类比,
    convert(varchar(20),round(sum(数量)/(select sum(数量) from t),4)*100)+'%' 占总数比
    from t  
    group by 分类,名称
      

  4.   

    计算出的结果占类比不对,类比的意思就是比如a占整个A类的比率,b占整个A类的比率,c占整个B类的比率,而且查询的表就一个表没有另外的表了,麻烦各位帮帮忙了