结合group by和Window功能

时间:2018-05-02 11:49:14

标签: sql db2

我正在尝试将窗口功能与group by组合用于以下功能。鉴于下表:

Table a
ID1   ID2   Value1   Value2
1     1     2        2
1     1     3        2
1     1     2        4
1     2     1        2

这里,我首先要计算每个ID1和ID2组合的value3,即sum(value2)* sum(value2),如下所示:

Table a
ID1   ID2   Value1   Value2    Value3
1     1     2        2         64
1     1     3        2         64
1     1     2        4         64
1     2     1        2         4

然后按ID1分组以计算结果总和(value1 * value3),例如

Result
ID1       Result
1         452

我开始尝试在此处实现此查询(http://sqlfiddle.com/#!9/9da0cf/6),但找不到正确的解决方案。

是否有可能在没有子查询的情况下在一个查询中计算这个?

1 个答案:

答案 0 :(得分:0)

这应该做你想要的:

pyuic5.bat

注意:您可以使用select id1, sum(val1 * val3) from (select t.*, sum(val2) over (partition by id1, id2) * sum(val2) over (partition by id1, id2) as val3 from t ) t group by id1; 而不是" self"乘法。