SQL中的ratio_to_report

时间:2016-10-16 17:57:33

标签: sql

我有一张类似

的表格
SELECT Client, Cost, Tier from table_x

Client|Cost|Tier|
abc   | 10 | 2  |
def   | 9  | 1  |
ghk   | 1  | 1  |
abc   | 20 | 1  |

我想要解决的是每个等级的花费占用百分比,即第一层的总花费,占客户占每层的百分比。

在这种情况下,ABC拥有最高的一级支出,所以我想计算出这一层的总支出,ABC的成本是多少。

我推理RATIO TO REPORT (Spend) OVER (PARTITION BY Cost, Tier)解决了这个问题?

1 个答案:

答案 0 :(得分:0)

这是你想要的吗?

select t.*,
       (cost / sum(cost) over ()) as tier_1_ratio_for_client
from t
where tier = 1;