Select 分组(列 1)在 Snowflake 中不起作用的情况
Select Case when Grouping(Column1) not working in Snowflake
我正在尝试在 Snowflake 中执行以下查询:
Select case when grouping(column_1) = 'Total'
else column_1 end as column_1
,sum(column_2)
From Table
group by rollup(column_1)
但我不断收到错误消息:“SQL 编译错误:GROUPING 函数不能出现在 SELECT、HAVING 和 ORDER BY 子句之外。”
关于如何解决这个问题或变通办法有什么建议吗?
尝试像这样编写查询:
select (case when grouping(t.column_1) = 1
then 'Total' else column_1
end) as column_1,
sum(column_2)
From Table t
group by rollup(t.column_1);
也就是说,限定 GROUP BY
中的引用,这样它就不会解析为列别名。另外,请注意,这修复了 case
表达式。
我正在尝试在 Snowflake 中执行以下查询:
Select case when grouping(column_1) = 'Total'
else column_1 end as column_1
,sum(column_2)
From Table
group by rollup(column_1)
但我不断收到错误消息:“SQL 编译错误:GROUPING 函数不能出现在 SELECT、HAVING 和 ORDER BY 子句之外。”
关于如何解决这个问题或变通办法有什么建议吗?
尝试像这样编写查询:
select (case when grouping(t.column_1) = 1
then 'Total' else column_1
end) as column_1,
sum(column_2)
From Table t
group by rollup(t.column_1);
也就是说,限定 GROUP BY
中的引用,这样它就不会解析为列别名。另外,请注意,这修复了 case
表达式。