Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Snowflake cloud data platform 在不同列上使用GROUPBY和Over子句_Snowflake Cloud Data Platform - Fatal编程技术网

Snowflake cloud data platform 在不同列上使用GROUPBY和Over子句

Snowflake cloud data platform 在不同列上使用GROUPBY和Over子句,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我有一张这样的桌子 col 1|col 2|col 3 a | 2 | 10 b | -1 | 10 a | 10 | 10 目标是将输出作为目标 col 1| col 2| col 3 a | 12 | 30 b | -1 |30 我尝试了以下查询 select col 1, sum(col 2), sum(col 3) OVER() From table t1 group by col 1 但是我犯了错误;列3不是有效的group b

我有一张这样的桌子

col 1|col 2|col 3
a    | 2   | 10
b    | -1  | 10
a    | 10  | 10
目标是将输出作为目标

col 1|  col 2| col 3
a    | 12    | 30
b    |  -1   |30
我尝试了以下查询

select col 1,
sum(col 2),
sum(col 3) OVER()
From table t1
group by col 1
但是我犯了错误;列3不是有效的group by表达式。
请建议另一种解决方案。提前谢谢。

您可以尝试在整个表中计算SUMcol3的总和:

SELECT
    col1,
    SUM(col2),
    SUM(SUM(col3)) OVER()
FROM table t1
GROUP BY col1;

如果要将SUM用作窗口函数,则需要对GROUP BY求值后可用的内容求和。SUMcol3可用,而col3不可用。

感谢您的帮助。它工作得很好。但是这个解决方案增加了列3的重复值。如果我们想选择col 3see edits的distinct值,那么将其作为col 3中20的输出是一种方法。请查看问题中的编辑。