-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathTagStats.sql
21 lines (15 loc) · 942 Bytes
/
TagStats.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DROP TYPE IF EXISTS osm_entity_type;
CREATE TYPE osm_entity_type AS ENUM ('node', 'way', 'relation');
DROP VIEW IF EXISTS lgd_tags;
CREATE VIEW lgd_tags AS
SELECT
t.osm_entity_type, t.osm_entity_id, t.k, t.v
FROM
((SELECT OSMEntityType('node') AS osm_entity_type, node_id AS osm_entity_id, k, v FROM node_tags) UNION ALL
(SELECT OSMEntityType('way') AS osm_entity_type, way_id AS osm_entity_id, k, v FROM way_tags) UNION ALL
(SELECT OSMEntityType('relation') AS osm_entity_type, relation_id AS osm_entity_id, k, v FROM relation_tags)) AS t;
SELECT k, COUNT(k) AS usage_count, COUNT(DISTINCT v) AS distinct_value_count INTO lgd_stat_tags_k FROM lgd_tags GROUP BY k;
CREATE INDEX idx_lgd_stat_tags_k_k ON lgd_stat_tags_k(k);
SELECT k, v, COUNT(*) AS usage_count INTO lgd_stat_tags_kv FROM lgd_tags GROUP BY k, v;
CREATE INDEX idx_lgd_stats_kv_v ON lgd_stat_tags_kv(v);
CREATE INDEX idx_lgd_stats_kv_k ON lgd_stat_tags_kv(k);