合并线 - 基于条件

时间:2016-03-07 13:40:02

标签: postgresql postgis

我有一个包含几何,名称和颜色的线条表。这些线条的类型很少。第一个具有不同的几何形状,相同的名称和颜色。这些类型应合并为一个段。

geometry| name   | color
A1      |Szlak 1 |blue
A2      |Szlak 1 |blue

结果:

geometry| name   | color
A1+A2   |Szlak 1 |blue

以上案例已经用以下代码解决:

WITH singleRow as ( 
   select count(way), way
   from planet_osm_line 
   group by way
   having count(way) > 1
)
SELECT P.*
FROM planet_osm_line P
JOIN singleRow S
  ON P.way = S.way

第二种类型是2条线具有相同的几何形状但名称或颜色不同。

geometry| name   | color
A1      |Szlak 1 |blue
A1      |Szlak 2 |green

在这种情况下,我需要这样的结果(一行中的所有标签):

geometry| name   | color | name1   |color1
A1      |Szlak 1 |blue   |Szlak 2  |green

如果2条线具有相同的几何形状但具有不同的名称和颜色,我需要将它们放在一行中,即name1,name2等。

谢谢。

0 个答案:

没有答案