You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Snowflake的LISTAGG函数中使用DESC对拼接数据降序排序?

解决Snowflake中LISTAGG按降序拼接的问题

错误原因

你直接将DESC跟在LISTAGG的分隔符后面的写法不符合Snowflake的语法规则,LISTAGG的排序逻辑必须通过WITHIN GROUP (ORDER BY ...)子句来指定。

正确查询写法

SELECT SKU, LISTAGG(DISTINCT Date, ';') WITHIN GROUP (ORDER BY Date DESC) AS Processed_Dates
FROM SKU_Data
GROUP BY SKU;

关键说明

  • 替换SELECT DISTINCT为GROUP BY SKU:LISTAGG是聚合函数,按SKU分组才能正确聚合每个SKU对应的日期,这种写法比DISTINCT更贴合聚合逻辑,结果也更准确。
  • WITHIN GROUP (ORDER BY Date DESC):这部分是核心,用于指定LISTAGG拼接时的排序规则,让日期按降序排列后再用分号拼接。
  • 保留DISTINCT:如果同一个SKU存在重复日期,该关键字会先对日期去重再拼接;若无需去重,直接去掉DISTINCT即可。

内容的提问来源于stack exchange,提问作者RK03

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:45:53