日期:2014-05-18  浏览次数:20465 次

统计多列百分比
查询得到如下结果:

f   g   r   数量
0   0   0     21
0   1   1     3
.   .   .     ..


F/G/R分别有三种组合-1,0,1   数量就是普通的整数> 0
希望得到下面的结果:

0   0   0   21%     0   0   1   33%   0   0   -1   46%
0   1   0   11%     0   1   1   55%   0   1   -1   34%
.........     ........     .........

总之把27种F/G/R排列所占的百分比按上面的格式算出来.




------解决方案--------------------
数据不够完整,未看出如何进行统计?等待中...
------解决方案--------------------
create table tab(f char(1),g char(1),r char(1),数量 int)
insert tab
select '0 ', '0 ', '0 ',21
union
select '0 ', '1 ', '1 ',3

select f,g,r,cast(sum(数量)*100/(select sum(数量) from tab) AS varchar(10))+ '% ' from tab
group by f,g,r

drop table tab