Было бы естественно использовать PostGIS geometry(pointz)[]
в качестве типа данных, массива трехмерных точек.
Вот пример, который показывает константу этого типа и вычисляет расстояние между точками :
WITH x(p) AS (
SELECT '{POINT Z (1 2 3):POINT Z (3 0 2)}'::geometry(pointz)[]
)
SELECT st_3ddistance(p[1], p[2]) FROM x;
st_3ddistance
---------------
3
(1 row)