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

Redshift中LISTAGG函数使用方法及报错解决咨询

Redshift中LISTAGG函数报错的解决方法

错误原因

Redshift规定LISTAGG、MEDIAN这类聚合函数必须作用于用户创建的表,而你查询的svv_all_columns是系统视图,不属于用户创建的表范畴,因此触发报错。

解决方案

先将系统视图中符合条件的数据导入到用户创建的临时表,再对临时表使用LISTAGG函数:

  1. 创建临时表存储目标表名
CREATE TEMP TABLE temp_target_tables AS
SELECT DISTINCT table_name 
FROM svv_all_columns 
WHERE schema_name = 'sn' AND database_name = 'db';
  1. 基于临时表生成DROP语句
SELECT 'DROP TABLE IF EXISTS deleted.' || LISTAGG(table_name, ', ') || ';' AS drop_statement
FROM temp_target_tables;

补充说明

  • 临时表属于用户创建的对象,完全满足LISTAGG的使用要求;
  • 提前用DISTINCT去重,避免生成重复的DROP表名;
  • Redshift临时表仅在当前会话有效,会话结束后自动清理,无需手动删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:18:20