计算行级总和的百分比
Calculate percent of sum on row level
我有疑问:
select my_year,my_month, L2, PAR1, PAR2, PAR3, Value from table1
产生以下table:
现在我想计算每一行的百分比。首先,我需要添加值 (20+30+40+50+60+70+80),然后将每一行除以总和。
结果应该是:
我可以一次性完成吗select?或者我应该在第二个查询中计算总和然后进行连接?
您可以使用 window 函数。对于您提供的数据:
select my_year, my_month, L2, PAR1, PAR2, PAR3, Value,
Value * 100.0 / SUM(Value) OVER () as percent
from table1;
这可以在单个查询中实现,如下所示:
select
my_year,
my_month,
L2,
PAR1,
PAR2,
PAR3,
Value,
(100.0 * Value) / SUM(Value) OVER ()
from
table1
我有疑问:
select my_year,my_month, L2, PAR1, PAR2, PAR3, Value from table1
产生以下table:
现在我想计算每一行的百分比。首先,我需要添加值 (20+30+40+50+60+70+80),然后将每一行除以总和。
结果应该是:
我可以一次性完成吗select?或者我应该在第二个查询中计算总和然后进行连接?
您可以使用 window 函数。对于您提供的数据:
select my_year, my_month, L2, PAR1, PAR2, PAR3, Value,
Value * 100.0 / SUM(Value) OVER () as percent
from table1;
这可以在单个查询中实现,如下所示:
select
my_year,
my_month,
L2,
PAR1,
PAR2,
PAR3,
Value,
(100.0 * Value) / SUM(Value) OVER ()
from
table1