gpt4 book ai didi

sql - 亚马逊 Redshift 中的列/总和(列)

转载 作者:行者123 更新时间:2023-11-29 14:11:09 25 4
gpt4 key购买 nike

我有一些这样的数据:

ID   Var1     Var2   cvRate(Var1/Var2)
1 1250 85 14.70
2 15 1 15
3 496 12 41.33
4 8825 29 420.23
5 97 18 5.388

我想添加一个本质上是 Var1/(sum(Var1)) 的列,例如:

ID   Var1     Var2   cvRate(Var1/Var2) NewCol
1 1250 85 14.70 0.117
2 15 1 15 0.001
3 496 12 41.33 0.046
4 8825 29 420.23 0.826
5 97 18 5.388 0.009

我尝试了查询的几种变体:

select ID, Var1, Var2, cvRate, Var1/sum(Var1) as NewCol from (<query that generates the first table>);


Error on group by caused by using sum

我哪里错了?此外,我没有在 redshift 中创建和存储另一个表的奢侈,我必须就地生成我的表。我遇到的另一个问题是生成第一个表的子查询相当复杂并且需要大量时间。我可能无法承受两次运行相同的查询。

最佳答案

你需要一个窗口函数,而不是聚合函数:

select ID, Var1, Var2, cvRate,
Var1 / sum(Var1) over () as NewCol
from (<query that generates the first table>);

关于sql - 亚马逊 Redshift 中的列/总和(列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27942373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com