sql 统计同类物品个数在总数中占的比例

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:22:05
比如有一张表
编号 类型 数量
1 A 2
2 B 6
3 C 1
4 B 3
5 A 5
我要统计同类记录的数量和在总数中占的比例
例子中的总数是2+6+1+3+5=17 类型A的数量和是2+5=8 B是6+3=9 C是1
因此A在总数中占的比例就是8/17=47% B为9/17=52% C为1/17=5%
结果表大致为
类型 比例
A 47%
B 52%
C 5%
请问SQL语句应该怎么写 要求比例用百分比或者小数显示
说的比较罗嗦 先放100分 比较急 谢谢

你的需要分步来做:
1 总数:
select sum(数量) as 总数 from 表

2 各部分的百分比:
select 类型,sum(数量)/ 总数*100% 百分比 from 表 group by 类型

简单
编号 类型 数量
1 A 2
2 B 6
3 C 1
4 B 3
5 A 5

select 编号,sum(数量) from 表名 group by 编号
select sum(数量) from 表名

假设你这个表名是 T,你要的结果是下面这一句 SQL:

Select T1.类型,T1.数量小计/T2.数量合计 as 比例
(Select T.类型,sum(T.数量) as 数量小计 from T Group By T.类型) T1
Left Join
(Select sum(数量) as 数量合计 from T) T2
ON 1=1