array_agg
当行包含空数组({}
)时使用时遇到问题.
这是我的SQL查询:
SELECT service_name, metric_name, array_agg(value_textarray)
FROM service_data
WHERE service_name = 'ActivityDataService'
GROUP BY service_name, metric_name
Run Code Online (Sandbox Code Playgroud)
列定义如下:
service_name - text
metric_name - text
value_textarray - text[]
Run Code Online (Sandbox Code Playgroud)
当我执行查询并且{}
数据库中有空数组()时,出现以下错误:
ERROR: cannot accumulate empty arrays
Run Code Online (Sandbox Code Playgroud)
我该怎么办呢?
小智 9
我有同样的问题,我无法过滤空数组,我发现这个函数解决了这个问题:
CREATE AGGREGATE array_accum (anyarray)
(
sfunc = array_cat,
stype = anyarray,
initcond = '{}'
);
Run Code Online (Sandbox Code Playgroud)
来源:https://gist.github.com/ryandotsmith/4602274
归档时间: |
|
查看次数: |
2640 次 |
最近记录: |