基础SQL
ID 名称 数量
--------------------
1 1 10
2 1 23
3 2 15
4 3 16
5 4 18
6 2 20
7 1 45
8 3 20
9 4 21
---------------------
1.查询名称为1的总数量与所有总数量的百分比(一条Sql语句)
2.查询各个名称的总数量与所有总数量的百分比(一条Sql语句)
------解决方案--------------------你的数据我看得不是很明白,给你举个例子~~
表tt:
ID NAME QUANTITY
---------- ---- ----------
1 aa 20
2 aa 30
3 aa 20
4 bb 50
5 bb 80
6 aa 10
7 cc 20
8 aa 60
1.查询name为aa的总数量与所有总数量的百分比(一条Sql语句)
=======================sql=================================
select *
from (
select tt.name,
round(RATIO_TO_REPORT(sum(tt.quantity)) over() * 100,2) || '% ' as percent
from tt
group by tt.name
)zz
where zz.name = 'aa ';
======================result===============================
NAME PERCENT
---- -----------------------------------------
aa 48.28%
2.查询各个name的总数量与所有总数量的百分比(一条Sql语句)
=======================sql=================================
select tt.name,
round(RATIO_TO_REPORT(sum(tt.quantity)) over() * 100,2) || '% ' as percent
from tt
group by tt.name;
======================result===============================
NAME PERCENT
---- -----------------------------------------
aa 48.28%
bb 44.83%
cc 6.9%