0415
This commit is contained in:
@@ -171,7 +171,7 @@ table Dim_Geo
|
||||
|
||||
partition Dim_Geo = m
|
||||
mode: import
|
||||
queryGroup: OLD\非首页
|
||||
queryGroup: Dim
|
||||
source = ```
|
||||
let
|
||||
Source =
|
||||
@@ -186,77 +186,111 @@ table Dim_Geo
|
||||
[Name = CatalogName, Kind = "Database"]
|
||||
}[Data],
|
||||
"
|
||||
WITH external_geo AS (
|
||||
SELECT
|
||||
DISTINCT DATA_SOURCE,
|
||||
AUDIT_COD,
|
||||
REGION_TYPE,
|
||||
PROVINCE_C,
|
||||
CITY_C,
|
||||
AZ_CITY_TIER,
|
||||
PROV_RN,
|
||||
CITY_RN,
|
||||
PROVINCE_MAP,
|
||||
COUNTY_NAME,
|
||||
COUNTY_TIER,
|
||||
PMT_REGION
|
||||
FROM
|
||||
WITH
|
||||
-- 去重后的外部地理维度表
|
||||
external_geo AS (
|
||||
SELECT DISTINCT
|
||||
DATA_SOURCE, -- 数据来源
|
||||
AUDIT_COD, -- 审计编码
|
||||
REGION_TYPE, -- 区域类型
|
||||
PROVINCE_C, -- 省份(中文)
|
||||
CITY_C, -- 城市(中文)
|
||||
AZ_CITY_TIER, -- 城市等级
|
||||
PROV_RN, -- 省份排序编号
|
||||
CITY_RN, -- 城市排序编号
|
||||
PROVINCE_MAP, -- 省份映射
|
||||
COUNTY_NAME, -- 县/区名称
|
||||
COUNTY_TIER, -- 县/区等级
|
||||
PMT_REGION -- 大区
|
||||
FROM
|
||||
DM.DM_TD_EXTERNAL_GEO
|
||||
),
|
||||
province_en AS (
|
||||
SELECT
|
||||
province_name,
|
||||
province_name_en
|
||||
FROM
|
||||
dm.dm_td_geography
|
||||
WHERE
|
||||
province_name <> ''
|
||||
and province_name is not null
|
||||
GROUP BY 1,2
|
||||
),
|
||||
city_en AS (
|
||||
SELECT
|
||||
city_name,
|
||||
city_name_en
|
||||
FROM
|
||||
dm.dm_td_geography
|
||||
WHERE
|
||||
city_name <> ''
|
||||
and city_name is not null
|
||||
GROUP BY 1,2
|
||||
)
|
||||
),
|
||||
-- 省份中→英映射(去重)
|
||||
province_en AS (
|
||||
SELECT DISTINCT
|
||||
province_name, -- 省份中文名
|
||||
province_name_en -- 省份英文名
|
||||
FROM
|
||||
DM.DM_TD_GEOGRAPHY
|
||||
WHERE
|
||||
province_name IS NOT NULL
|
||||
AND province_name <> ''
|
||||
),
|
||||
-- 城市中→英映射(原始名称,用于精确匹配)
|
||||
city_base AS (
|
||||
SELECT DISTINCT
|
||||
city_name, -- 城市中文名
|
||||
city_name_en -- 城市英文名
|
||||
FROM
|
||||
DM.DM_TD_GEOGRAPHY
|
||||
WHERE
|
||||
city_name IS NOT NULL
|
||||
AND city_name <> ''
|
||||
),
|
||||
-- 城市中→英映射(带'市'后缀,用于模糊匹配)
|
||||
city_with_suffix AS (
|
||||
SELECT DISTINCT
|
||||
city_name, -- 城市中文名(含'市'后缀)
|
||||
city_name_en -- 城市英文名
|
||||
FROM
|
||||
DM.DM_TD_GEOGRAPHY
|
||||
WHERE
|
||||
city_name IS NOT NULL
|
||||
AND city_name <> ''
|
||||
)
|
||||
SELECT
|
||||
a.DATA_SOURCE,
|
||||
a.AUDIT_COD,
|
||||
a.REGION_TYPE,
|
||||
a.PROVINCE_C,
|
||||
case
|
||||
when a.PROVINCE_C = 'ROC' THEN 'ROC'
|
||||
WHEN a.PROVINCE_C = '全国' then 'National'
|
||||
ELSE prov.province_name_en
|
||||
END as PROVINCE_EN,
|
||||
nvl(city_shi.city_name,a.CITY_C) CITY_C,
|
||||
nvl(city_shi.city_name,a.CITY_C) MERGED_DATA_CITY_C,
|
||||
case
|
||||
when a.CITY_C = 'ROC' THEN 'ROC'
|
||||
WHEN a.CITY_C = '全国' then 'National'
|
||||
WHEN a.CITY_C = '苏锡' THEN 'Suxichang'
|
||||
WHEN a.PROVINCE_C = a.CITY_C then prov.province_name_en
|
||||
WHEN city.city_name is null THEN city_shi.city_name_en
|
||||
ELSE city.city_name_en
|
||||
END as CITY_EN,
|
||||
a.AZ_CITY_TIER,
|
||||
a.PROV_RN,
|
||||
a.CITY_RN,
|
||||
a.PROVINCE_MAP,
|
||||
a.COUNTY_NAME,
|
||||
a.COUNTY_TIER,
|
||||
a.PMT_REGION
|
||||
a.DATA_SOURCE,
|
||||
a.AUDIT_COD,
|
||||
a.REGION_TYPE,
|
||||
a.PROVINCE_C,
|
||||
-- ========== 省份英文翻译 ==========
|
||||
CASE
|
||||
WHEN a.PROVINCE_C = 'ROC' THEN 'ROC'
|
||||
WHEN a.PROVINCE_C = '全国' THEN 'National'
|
||||
ELSE prov.province_name_en
|
||||
END AS PROVINCE_EN,
|
||||
-- ========== 城市中文(优先取地理表标准名) ==========
|
||||
CASE
|
||||
WHEN a.DATA_SOURCE <> 'AIA(Monthly)' and replace (a.CITY_C, '市', '') IN ('北京', '上海', '天津', '重庆') THEN a.CITY_C || '市'
|
||||
ELSE a.CITY_C
|
||||
END AS CITY_C,
|
||||
CASE
|
||||
WHEN a.DATA_SOURCE <> 'AIA(Monthly)' and REPLACE (a.CITY_C, '市', '') IN ('北京', '上海', '天津', '重庆') THEN a.CITY_C || '市'
|
||||
ELSE a.CITY_C
|
||||
END AS MERGED_DATA_CITY_C,
|
||||
-- ========== 城市英文翻译 ==========
|
||||
-- 条件按命中概率从高到低排列:
|
||||
-- ① 特殊标记(ROC / 全国)
|
||||
-- ② 特殊区域缩写(苏锡 → Suxichang)
|
||||
-- ③ 省市同名(如'北京'既是省也是市,取省级翻译)
|
||||
-- ④ 精确匹配命中
|
||||
-- ⑤ 带'市'后缀模糊匹配命中
|
||||
-- ⑥ 兜底:保留原始中文
|
||||
CASE
|
||||
WHEN a.CITY_C = 'ROC' THEN 'ROC'
|
||||
WHEN a.CITY_C = '全国' THEN 'National'
|
||||
WHEN a.CITY_C = '苏锡' THEN 'Suxichang'
|
||||
WHEN a.PROVINCE_C = a.CITY_C THEN prov.province_name_en
|
||||
WHEN base.city_name_en IS NOT NULL THEN base.city_name_en
|
||||
WHEN sfx.city_name_en IS NOT NULL THEN sfx.city_name_en
|
||||
ELSE a.CITY_C
|
||||
END AS CITY_EN,
|
||||
a.AZ_CITY_TIER,
|
||||
a.PROV_RN,
|
||||
a.CITY_RN,
|
||||
a.PROVINCE_MAP,
|
||||
a.COUNTY_NAME,
|
||||
a.COUNTY_TIER,
|
||||
a.PMT_REGION
|
||||
FROM
|
||||
external_geo a
|
||||
LEFT JOIN province_en prov ON a.PROVINCE_C = prov.province_name
|
||||
LEFT JOIN city_en city ON a.CITY_C = city.city_name
|
||||
LEFT JOIN city_en city_shi on concat(a.CITY_C, '市') = city_shi.city_name
|
||||
external_geo a
|
||||
-- 省份精确关联
|
||||
LEFT JOIN province_en prov ON a.PROVINCE_C = prov.province_name
|
||||
-- 城市精确匹配(外部表.city = 地理表.city)
|
||||
LEFT JOIN city_base base ON a.CITY_C = base.city_name
|
||||
-- 城市模糊匹配(外部表.city + '市' = 地理表.city)
|
||||
LEFT JOIN city_with_suffix sfx ON CONCAT (a.CITY_C, '市') = sfx.city_name
|
||||
|
||||
"
|
||||
& UsingLimit,
|
||||
null,
|
||||
|
||||
Reference in New Issue
Block a user