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 表达式。