This commit is contained in:
2026-04-15 10:36:20 +08:00
parent 43527d6c98
commit f1903bf7bb
811 changed files with 46977 additions and 41706 deletions

View File

@@ -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,