【发布时间】:2018-01-15 14:07:49
【问题描述】:
为什么这种情况会失败? 解决我的问题的最佳方法是什么?
SELECT * FROM myTable foo
WHERE ARRAY_AGG(SUBSTRING(UNNEST(foo.array), 'abc(.*?)xyz'))
&& ARRAY['ElementA','ElementZ']
我的表有一个数组列,其中包含未解析的字符串。我在这里所做的是逐个元素地解析这些元素,然后再次重新组合成一个数组,这样我就可以比较处理后的数组是否包含我预期的任何元素
但它会返回:
错误:列“foo.id”必须出现在 GROUP BY 子句中或被使用 在聚合函数中
我真的需要按所有列分组吗? where 过滤器不应该是虚拟唯一的吗?有没有办法在不影响其余查询的情况下虚拟处理 unnest/nest 操作?
【问题讨论】:
-
样本数据和预期结果将帮助其他人了解您尝试做什么。
-
问题是所有这一切都是一种简化,我不确定过分关注模拟场景是否有价值,这样会更简单
-
@Whimusical 准备样本数据和所需的输出总是很有价值,有助于提供准确的解决方案。
标签: sql postgresql aggregate-functions