added queries from ne admin1 to match qs
This commit is contained in:
@@ -5,10 +5,10 @@
|
|||||||
--- TO DO: add more synonyms from external sources later
|
--- TO DO: add more synonyms from external sources later
|
||||||
|
|
||||||
--- clear the table
|
--- clear the table
|
||||||
DELETE FROM admin1_synonyms_qs;
|
DELETE FROM admin1_synonyms;
|
||||||
|
|
||||||
--- add admin1 name from qs_adm1 countries that don't have regions
|
--- add admin1 name from qs_adm1 countries that don't have regions
|
||||||
INSERT INTO admin1_synonyms_qs(name, rank, adm0_a3, global_id)
|
INSERT INTO admin1_synonyms(name, rank, adm0_a3, global_id)
|
||||||
SELECT
|
SELECT
|
||||||
qs_a1, 0, qs_adm0_a3, global_id
|
qs_a1, 0, qs_adm0_a3, global_id
|
||||||
FROM
|
FROM
|
||||||
@@ -17,7 +17,7 @@ WHERE
|
|||||||
qs_adm0 NOT IN ('Belgium', 'Finland', 'France', 'Hungary', 'Italy', 'Serbia', 'Spain', 'United Kingdom');
|
qs_adm0 NOT IN ('Belgium', 'Finland', 'France', 'Hungary', 'Italy', 'Serbia', 'Spain', 'United Kingdom');
|
||||||
|
|
||||||
--- add province code from qs_adm1 countries that don't have regions
|
--- add province code from qs_adm1 countries that don't have regions
|
||||||
INSERT INTO admin1_synonyms_qs(name, rank, adm0_a3, global_id)
|
INSERT INTO admin1_synonyms(name, rank, adm0_a3, global_id)
|
||||||
SELECT
|
SELECT
|
||||||
qs_a1_lc, 1, qs_adm0_a3, global_id
|
qs_a1_lc, 1, qs_adm0_a3, global_id
|
||||||
FROM
|
FROM
|
||||||
@@ -26,10 +26,94 @@ WHERE
|
|||||||
qs_adm0 NOT IN ('Belgium', 'Finland', 'France', 'Hungary', 'Italy', 'Serbia', 'Spain', 'United Kingdom');
|
qs_adm0 NOT IN ('Belgium', 'Finland', 'France', 'Hungary', 'Italy', 'Serbia', 'Spain', 'United Kingdom');
|
||||||
|
|
||||||
--- add admin1 name from qs_adm1_region
|
--- add admin1 name from qs_adm1_region
|
||||||
INSERT INTO admin1_synonyms_qs(name, rank, adm0_a3, global_id)
|
INSERT INTO admin1_synonyms(name, rank, adm0_a3, global_id)
|
||||||
SELECT
|
SELECT
|
||||||
qs_a1r, 0, qs_adm0_a3, global_id
|
qs_a1r, 0, qs_adm0_a3, global_id
|
||||||
FROM
|
FROM
|
||||||
qs_adm1_region;
|
qs_adm1_region;
|
||||||
|
|
||||||
--- TO DO: add external synonyms
|
|
||||||
|
-------- add external synonyms from natural earth admin1 states provinces --------
|
||||||
|
-- separate data from the name_alt column from ne_admin1_v3 using `|` as a delimiter and insert into admin1_synonyms as new rows with a rank=2
|
||||||
|
INSERT INTO admin1_synonyms (name, rank, adm0_a3, global_id)
|
||||||
|
SELECT
|
||||||
|
regexp_split_to_table(ne_admin1_v3.name_alt, E'\\|' ) AS name,
|
||||||
|
2, adm0_a3,
|
||||||
|
(
|
||||||
|
SELECT qs_adm1.global_id FROM qs_adm1
|
||||||
|
WHERE qs_source = 'Natural Earth'
|
||||||
|
AND ne_admin1_v3.adm1_code = qs_a1_lc
|
||||||
|
)
|
||||||
|
FROM
|
||||||
|
ne_admin1_v3
|
||||||
|
WHERE adm1_code IN (
|
||||||
|
SELECT qs_a1_lc
|
||||||
|
FROM qs_adm1
|
||||||
|
WHERE qs_source = 'Natural Earth'
|
||||||
|
);
|
||||||
|
|
||||||
|
-- add the abbrev as a rank = 3
|
||||||
|
INSERT INTO admin1_synonyms(name, rank, adm0_a3, global_id )
|
||||||
|
SELECT abbrev, 3, adm0_a3,
|
||||||
|
(
|
||||||
|
SELECT qs_adm1.global_id FROM qs_adm1
|
||||||
|
WHERE qs_source = 'Natural Earth'
|
||||||
|
AND ne_admin1_v3.adm1_code = qs_a1_lc
|
||||||
|
)
|
||||||
|
FROM
|
||||||
|
ne_admin1_v3
|
||||||
|
WHERE adm1_code IN (
|
||||||
|
SELECT qs_a1_lc
|
||||||
|
FROM qs_adm1
|
||||||
|
WHERE qs_source = 'Natural Earth'
|
||||||
|
);
|
||||||
|
|
||||||
|
-- add the postal code as rank = 4
|
||||||
|
INSERT INTO admin1_synonyms(name, rank, adm0_a3, global_id)
|
||||||
|
SELECT postal, 4, adm0_a3,
|
||||||
|
(
|
||||||
|
SELECT qs_adm1.global_id FROM qs_adm1
|
||||||
|
WHERE qs_source = 'Natural Earth'
|
||||||
|
AND ne_admin1_v3.adm1_code = qs_a1_lc
|
||||||
|
)
|
||||||
|
FROM
|
||||||
|
ne_admin1_v3
|
||||||
|
WHERE adm1_code IN (
|
||||||
|
SELECT qs_a1_lc
|
||||||
|
FROM qs_adm1
|
||||||
|
WHERE qs_source = 'Natural Earth'
|
||||||
|
);
|
||||||
|
|
||||||
|
-- add gn_name as rank = 5
|
||||||
|
INSERT INTO admin1_synonyms(name, rank, adm0_a3, global_id)
|
||||||
|
SELECT postal, 4, adm0_a3,
|
||||||
|
(
|
||||||
|
SELECT qs_adm1.global_id FROM qs_adm1
|
||||||
|
WHERE qs_source = 'Natural Earth'
|
||||||
|
AND ne_admin1_v3.adm1_code = qs_a1_lc
|
||||||
|
)
|
||||||
|
FROM
|
||||||
|
ne_admin1_v3
|
||||||
|
WHERE adm1_code IN (
|
||||||
|
SELECT qs_a1_lc
|
||||||
|
FROM qs_adm1
|
||||||
|
WHERE qs_source = 'Natural Earth'
|
||||||
|
);
|
||||||
|
|
||||||
|
-- remove all cases where name is NULL
|
||||||
|
DELETE FROM admin1_synonyms WHERE name IS NULL;
|
||||||
|
|
||||||
|
-- remove all cases where a name is duplicated with a higher rank
|
||||||
|
DELETE FROM admin1_synonyms
|
||||||
|
WHERE cartodb_id IN (
|
||||||
|
SELECT
|
||||||
|
cartodb_id
|
||||||
|
FROM
|
||||||
|
admin1_synonyms a
|
||||||
|
WHERE
|
||||||
|
0 < (
|
||||||
|
SELECT count(*)
|
||||||
|
FROM admin1_synonyms
|
||||||
|
WHERE name_ = a.name_
|
||||||
|
AND global_id = a.global_id
|
||||||
|
AND rank < a.rank));
|
||||||
|
|||||||
Reference in New Issue
Block a user