计算行级别的总和百分比

时间:2016-07-21 13:13:17

标签: sql sql-server-2008 rows percentage date-arithmetic

我有疑问:

select my_year,my_month, L2, PAR1, PAR2, PAR3, Value from table1

制作下表: enter image description here

现在我想计算每一行的百分比。首先,我需要添加值(20 + 30 + 40 + 50 + 60 + 70 + 80),然后将每行除以总和。 结果应该是: enter image description here

我可以选择一个吗?或者我应该在第二个查询中计算总和然后加入?

2 个答案:

答案 0 :(得分:2)

您可以使用窗口功能。对于您提供的数据:

select my_year, my_month, L2, PAR1, PAR2, PAR3, Value,
       Value * 100.0 / SUM(Value) OVER () as percent
from table1;

答案 1 :(得分:0)

这可以在单个查询中实现,如下所示:

select
    my_year,
    my_month,
    L2,
    PAR1,
    PAR2,
    PAR3,
    Value,
    (100.0 * Value) / SUM(Value) OVER ()
from
    table1