2016-12-16 71 views
0

我有一個整型[4]類型的box_coordinates列,我想將數組的每個元素除以640並將其插入到float [4 ]。我第一次嘗試聚集將除法應用於PostgreSQL中的數組中的每個元素

SELECT n/640::float 
FROM (
    SELECT unnest(box_coordinates) 
    FROM images 
) AS n; 

之前到陣列中的每個元素分開,但它失敗,錯誤

ERROR: operator does not exist: record/integer 
HINT: No operator matches the given name and argument type(s). 
     You might need to add explicit type casts. 

我如何申請數組元素師,然後將結果存入類型的新列float [4],同時保持新數組中元素的順序不變?

回答

2

您使用n代替unnest結果

SELECT n.coord/640::float 
FROM (
    SELECT unnest(box_coordinates) as coord 
    FROM images 
    LIMIT 4 
) AS n; 
+0

謝謝,這作品!你能否編輯你的帖子來回答你如何將它插入float [4]類型的新列? – Kostas

+0

你需要'array_agg()'http://stackoverflow.com/questions/6402043/store-select-querys-output-in-one-array-in-postgres –

相關問題