我使用array_agg()函數將多行轉換爲數組, 我需要將該數組賦給select語句的條件。Postgresql從數組中選擇值
我的查詢,
SELECT * FROM table WHERE id =
ALL(SELECT array_agg(id) FROM table WHERE some_condition)
,但它給錯誤,我怎麼能到這兒來呢..
我使用array_agg()函數將多行轉換爲數組, 我需要將該數組賦給select語句的條件。Postgresql從數組中選擇值
我的查詢,
SELECT * FROM table WHERE id =
ALL(SELECT array_agg(id) FROM table WHERE some_condition)
,但它給錯誤,我怎麼能到這兒來呢..
錯誤已被鑄造型數組清除,用我這樣的查詢
SELECT * FROM table WHERE id =
ALL((SELECT array_agg(id) FROM table WHERE some_condition)::bigint[])
好像你是過於複雜的事情。據我所知,您的查詢應該是等同於簡單:
SELECT * FROM table WHERE some_condition
或者,如果你是從2個不同的表中選擇,使用加入:
SELECT table1.*
FROM table1
JOIN table2 ON table1.id = table2.id
WHERE some_condition
這不僅是簡單的,它比數組擺弄還快。
我需要記錄的數量, – 2013-04-05 06:34:01
這是沒有提到你的問題。 'SELECT count(*)...'有什麼問題? – mvp 2013-04-05 06:35:41
和錯誤? – h22 2013-04-05 06:23:27
你得到的錯誤是什麼? – 2013-04-05 06:23:40
錯誤:運算符不存在:bigint = bigint []提示:沒有運算符匹配給定的名稱和參數類型。您可能需要添加顯式類型轉換。 – 2013-04-05 06:26:00