Arrays Postgresql从数组中的值中选择

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 或者

我正在使用array_agg()函数将中的多行转换为一个数组, 我需要将该数组赋给一个select语句,其中包含条件

我的问题是

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[]提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。我需要计算记录的数量,这在您的问题中没有提到。
选择计数(*)…
有什么问题?