比如有个表:
分类 名称 数量
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%谢谢各位高手帮助
分类 名称 数量
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%谢谢各位高手帮助
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
分类,名称
--小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
分类,名称
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 分类,名称