Advertisement
Guest User

Untitled

a guest
Jun 30th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.07 KB | None | 0 0
  1. Step 1:
  2.  
  3. CREATE TABLE bollard_step_1 AS
  4.     SELECT p.osm_id, p.way AS p_way, w.id, w.highway, w.name, w.way AS w_way
  5.     FROM planet_osm_point AS p
  6.     INNER JOIN (SELECT id, l1.highway, l1.way, l1.name, unnest(nodes) AS n
  7.                 FROM planet_osm_ways w1
  8.                 INNER JOIN planet_osm_line l1
  9.                 ON w1.id = l1.osm_id AND
  10.                 highway IS NOT NULL) AS w
  11.     ON p.osm_id = w.n
  12.     WHERE barrier = 'bollard';
  13.  
  14. Step 2:
  15.  
  16. CREATE TABLE bollard_step_2 AS
  17.     SELECT osm_id, p_way, id, highway, name,
  18.            (SELECT nodes[1] = osm_id OR nodes[array_length(nodes,1)] = osm_id
  19.                    FROM planet_osm_ways
  20.                    WHERE id = b1.id) AS merker
  21.     FROM bollard_step_1 AS b1 ORDER BY osm_id;
  22.  
  23. Step 3:
  24.  
  25. CREATE TABLE bollard_step_3a AS
  26.    SELECT b2.osm_id, p_way FROM bollard_step_2 b2  
  27.    GROUP BY b2.osm_id,b2.p_way
  28.    HAVING COUNT(*) > 1 AND
  29.    (SELECT COUNT(*) FROM bollard_step_2
  30.            WHERE (highway='residential' OR highway='living_street' OR
  31.                   highway='primary' OR highway='secondary' OR
  32.                   highway='tertiary' OR highway='unclassified') AND
  33.                  osm_id = b2.osm_id AND
  34.                  merker = 't' ) > 1
  35.     AND (SELECT COUNT(DISTINCT name) FROM bollard_step_2
  36.            WHERE (highway='residential' OR highway='living_street' OR
  37.                   highway='primary' OR highway='secondary' OR
  38.                   highway='tertiary' OR highway='unclassified') AND
  39.                  osm_id = b2.osm_id AND
  40.                  merker = 't') > 1
  41.     ORDER BY osm_id;
  42.  
  43.  
  44. CREATE TABLE bollard_step_3b AS
  45.    SELECT b2.osm_id, p_way FROM bollard_step_2 b2  
  46.    GROUP BY b2.osm_id,b2.p_way
  47.    HAVING COUNT(*) > 1 AND
  48.    (SELECT COUNT(*) FROM bollard_step_2
  49.            WHERE (highway='residential' OR highway='living_street' OR
  50.                   highway='primary' OR highway='secondary' OR
  51.                   highway='tertiary' OR highway='unclassified') AND
  52.                  osm_id = b2.osm_id AND
  53.                  merker = 'f' ) > 0
  54.     ORDER BY osm_id;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement