您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用SQL窗口函数计算合计百分比

如何使用SQL窗口函数计算合计百分比

我认为您正在寻找这个:

SELECT d1, d2, sum(v)/sum(sum(v)) OVER (PARTITION BY d1) AS share
FROM   test
GROUP  BY d1, d2;

产生请求的结果。

窗口函数 聚合函数 之后 应用。外部sum()sum(sum(v)) OVER ...一个窗口函数(附加的OVER ...子句),而内部的sum()一个聚合函数

有效地与:

WITH x AS (
   SELECT d1, d2, sum(v) AS sv
   FROM   test
   GROUP  BY d1, d2
   )
SELECT d1, d2, sv/sum(sv) OVER (PARTITION BY d1) AS share
FROM   x;

或(无CTE):

SELECT d1, d2, sv/sum(sv) OVER (PARTITION BY d1) AS share
FROM  (
   SELECT d1, d2, sum(v) AS sv
   FROM   test
   GROUP  BY d1, d2
   ) x;

或@Mu的变体。

另外:Greenplum引入了与4.2版本相关的子查询请参阅发行说明。

SQLServer 2022/1/1 18:34:36 有536人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶