如何在PostgreSQL中找到三维数组的最大(或最小)元素?
是否有任何功能或更快的方式而不是这个?:
min:= A[1][1][1];
for i IN 1..9 LOOP
for j IN 1..9 LOOP
for k IN 1..9 LOOP
min := least(min,A[i][j][k]);
END LOOP;
END LOOP;
END LOOP;
答案 0 :(得分:3)
使用unnest()
:
SELECT min(elem) AS min_elem
FROM unnest(my_arr) AS elem
无论数组维度如何, unnest()
都会返回一组 base 元素。然后你需要的只是聚合函数min()
。
作为plpgsql赋值(因为你似乎正在使用plpgsql):
SELECT min(elem) INTO my_variable
FROM unnest(my_arr) AS elem