Arrays Postgresql从数组中的值中选择
我正在使用array_agg()函数将中的多行转换为一个数组, 我需要将该数组赋给一个select语句,其中包含条件 我的问题是Arrays Postgresql从数组中的值中选择,arrays,postgresql,postgresql-9.1,Arrays,Postgresql,Postgresql 9.1,我正在使用array_agg()函数将中的多行转换为一个数组, 我需要将该数组赋给一个select语句,其中包含条件 我的问题是 SELECT * FROM table WHERE id = ALL(SELECT array_agg(id) FROM table WHERE some_condition) 但是它会产生错误,我怎样才能克服它。看起来你把事情复杂化了。据我所知,您的查询应该相当于简单: SELECT * FROM table WHERE some_condition 或者
SELECT * FROM table WHERE id =
ALL(SELECT array_agg(id) FROM table WHERE some_condition)
但是它会产生错误,我怎样才能克服它。看起来你把事情复杂化了。据我所知,您的查询应该相当于简单:
SELECT * FROM table WHERE some_condition
或者,如果要从两个不同的表中进行选择,请使用join:
SELECT table1.*
FROM table1
JOIN table2 ON table1.id = table2.id
WHERE some_condition
这不仅简单,而且比摆弄数组要快。通过使用我的查询,通过类型转换数组来清除错误
SELECT * FROM table WHERE id =
ALL((SELECT array_agg(id) FROM table WHERE some_condition)::bigint[])
您得到的错误是什么??错误:运算符不存在:bigint=bigint[]提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。我需要计算记录的数量,这在您的问题中没有提到。
选择计数(*)…
有什么问题?