structuring for a make file
This commit is contained in:
75
geocoder/admin0/sql/build_synonym_table.sql
Normal file
75
geocoder/admin0/sql/build_synonym_table.sql
Normal file
@@ -0,0 +1,75 @@
|
||||
|
||||
---- ADMIN0_SYNONYMS ---
|
||||
-- insert data from ne_admin_0 into admin0_synonyms
|
||||
-- the name column from ne_10m_countries is assigned a rank of 0
|
||||
INSERT INTO admin0_synonyms (name, rank, adm0_a3)
|
||||
SELECT name, 0, adm0_a3
|
||||
FROM ne_admin0_v3;
|
||||
|
||||
-- separate data from the name_alt column from ne_admin0_v3 using `|` as a delimiter
|
||||
-- and insert into admin1_synonyms as new rows with a rank=1
|
||||
INSERT INTO admin0_synonyms (name, rank, adm0_a3)
|
||||
SELECT
|
||||
regexp_split_to_table(ne_admin0_v3.name_alt, E'\\|' ) AS name, 1, adm0_a3
|
||||
FROM
|
||||
ne_admin0_v3;
|
||||
|
||||
-- insert ad0_a3 codes as synonyms with a rank = 3
|
||||
INSERT INTO admin0_synonyms (name, rank, adm0_a3)
|
||||
SELECT
|
||||
adm0_a3, 3, adm0_a3
|
||||
FROM
|
||||
ne_admin0_v3;
|
||||
|
||||
-- insert abbrv as name with a rank = 4
|
||||
INSERT INTO admin0_synonyms (name, rank, adm0_a3)
|
||||
SELECT
|
||||
abbrev, 4, adm0_a3
|
||||
FROM
|
||||
ne_admin0_v3;
|
||||
|
||||
-- insert formal_en as name with a rank = 5
|
||||
INSERT INTO admin0_synonyms (name, rank, adm0_a3)
|
||||
SELECT
|
||||
formal_en, 5, adm0_a3
|
||||
FROM
|
||||
ne_admin0_v3;
|
||||
|
||||
-- insert brk_name as name with a rank = 6
|
||||
INSERT INTO admin0_synonyms (name, rank, adm0_a3)
|
||||
SELECT
|
||||
brk_name, 6, adm0_a3
|
||||
FROM
|
||||
ne_admin0_v3;
|
||||
|
||||
-- insert formal_fr as name with a rank = 7
|
||||
INSERT INTO admin0_synonyms (name, rank, adm0_a3)
|
||||
SELECT
|
||||
formal_fr, 7, adm0_a3
|
||||
FROM
|
||||
ne_admin0_v3;
|
||||
|
||||
-- insert iso_a2 as name with a rank = 8
|
||||
INSERT INTO admin0_synonyms (name, rank, adm0_a3)
|
||||
SELECT
|
||||
iso_a2, 8, adm0_a3
|
||||
FROM
|
||||
ne_admin0_v3;
|
||||
|
||||
-- remove all cases where name is NULL
|
||||
DELETE FROM admin0_synonyms WHERE name IS NULL;
|
||||
|
||||
-- remove all cases where a name is duplicated with a higher rank
|
||||
DELETE FROM admin0_synonyms
|
||||
WHERE cartodb_id IN (
|
||||
SELECT
|
||||
cartodb_id
|
||||
FROM
|
||||
admin0_synonyms a
|
||||
WHERE
|
||||
0 < (
|
||||
SELECT count(*)
|
||||
FROM admin0_synonyms
|
||||
WHERE name_ = a.name_
|
||||
AND adm0_a3 = a.adm0_a3
|
||||
AND rank < a.rank));
|
||||
Reference in New Issue
Block a user