对PostgreSQL中数组类型列中的每个元素应用除法
Posted
技术标签:
【中文标题】对PostgreSQL中数组类型列中的每个元素应用除法【英文标题】:Apply division to each element in column of type array in PostgreSQL 【发布时间】:2016-12-16 18:49:37 【问题描述】:我有一个整数 [4] 类型的 box_coordinates 列,我想将数组的每个元素除以 640 并将其插入到浮点 [4] 类型的新列中。我首先尝试在聚合之前划分数组的每个元素
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] 类型的新列中,同时保持新数组中元素的顺序不变?
【问题讨论】:
【参考方案1】:您正在使用n
而不是unnest
结果
SELECT n.coord/640::float
FROM (
SELECT unnest(box_coordinates) as coord
FROM images
LIMIT 4
) AS n;
【讨论】:
谢谢,这行得通!您能否编辑您的帖子以回答您如何将其插入到 float[4] 类型的新列中? 你需要array_agg()
***.com/questions/6402043/…以上是关于对PostgreSQL中数组类型列中的每个元素应用除法的主要内容,如果未能解决你的问题,请参考以下文章