2016-07-22 49 views
1

我有表所示:从两列选择的数据作为阵列中的一个列进行排序,并在另一列分组

CREATE TABLE IF NOT EXISTS "points" (
    "id" INTEGER NOT NULL, 
    "lat" DOUBLE PRECISION NOT NULL, 
    "lon" DOUBLE PRECISION NOT NULL 
); 

INSERT INTO "points" ("id", "lat", "lon") VALUES 
    (1,51.11,-0.11), 
    (2,51.12,-0.12), 
    (3,51.13,-0.13), 
    (4,51.14,-0.14), 
    (5,52.44,-2.44), 
    (6,52.45,-2.45), 
    (7,52.46,-2.46), 
    (8,52.47,-2.47); 

从两列(latlon)作为JSON阵列如何选择数据从表排序在一列(id)? 结果应该是:

[ 
    [51.11,-0.11],[51.12,-0.12], 
    [51.13,-0.13],[51.14,-0.14], 
    [44,-2.44],[52.45,-2.45], 
    [52.46,-2.46],[52.47,-2.47] 
] 
+0

期望的结果不团。分组意味着什么? –

+0

@ClodoaldoNeto我编辑的问题 - 分组不需要,只有排序。 – HasT

回答

1
select to_json(array_agg(array[lat,lon] order by id)) 
from points 
; 
                 to_json              
------------------------------------------------------------------------------------------------------------------- 
[[51.11,-0.11],[51.12,-0.12],[51.13,-0.13],[51.14,-0.14],[52.44,-2.44],[52.45,-2.45],[52.46,-2.46],[52.47,-2.47]] 
相关问题