20260511_chenwu_niad拆分的修改及部分bug修复暂定版本

This commit is contained in:
2026-05-11 07:31:58 +00:00
parent 3a03ba1ad2
commit 4689311dc0
9 changed files with 569 additions and 460 deletions

View File

@@ -415,7 +415,13 @@ LEVEL_MARKET_RD = 'RD Market'
# MAGIC zk_manu_des,
# MAGIC zk_corp_des,
# MAGIC zk_pack_des,
# MAGIC month,
# MAGIC -- niad的month聚合成季度的值
# MAGIC concat(left(quarter,4),
# MAGIC case when right(quarter,2) = 'Q1' THEN '03'
# MAGIC when right(quarter,2) = 'Q2' THEN '06'
# MAGIC when right(quarter,2) = 'Q3' THEN '09'
# MAGIC when right(quarter,2) = 'Q4' THEN '12' END)
# MAGIC AS month,
# MAGIC quarter,
# MAGIC replace(price,',','' ),
# MAGIC replace(sales_unit,',','' ),
@@ -618,4 +624,201 @@ LEVEL_MARKET_RD = 'RD Market'
# COMMAND ----------
# MAGIC %md
# MAGIC ## STEP-2: calculate niad date
# COMMAND ----------
# MAGIC %sql
# MAGIC CREATE OR REPLACE TABLE tmp.tmp_dm_td_ext_retail_niad_month as
# MAGIC WITH ALL_RETIAL_DATA (
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_nataional_niad
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_statin_xzk
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_nataional_oap
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_anti_asthma_copd
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_aagsa_ppi_oral
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_atomizer
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_nataional_rd
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_metoprolol_tartrat
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_htn
# MAGIC )
# MAGIC SELECT
# MAGIC MAX(t1.month) as NIAD_MONTH,
# MAGIC max(t2.month) OTHERS_MONTH
# MAGIC FROM
# MAGIC all_retial_data t1
# MAGIC LEFT JOIN (
# MAGIC SELECT
# MAGIC MAX(month) as month
# MAGIC FROM
# MAGIC all_retial_data
# MAGIC WHERE
# MAGIC datatype = 'NOTNIAD'
# MAGIC ) t2
# MAGIC WHERE
# MAGIC t1.datatype = 'NIAD'
# COMMAND ----------
############################################################END##############################################################

View File

@@ -5,10 +5,16 @@
"execution_count": 0,
"metadata": {
"application/vnd.databricks.v1+cell": {
"cellMetadata": {},
"cellMetadata": {
"byteLimit": 2048000,
"rowLimit": 10000
},
"finishTime": 1778484351983,
"inputWidgets": {},
"nuid": "4d16488f-0327-4ced-b23f-41f960a90d2f",
"showTitle": false,
"startTime": 1778484351892,
"submitTime": 1778484351680,
"tableResultSettingsMap": {},
"title": ""
}
@@ -29,12 +35,12 @@
"implicitDf": true,
"rowLimit": 10000
},
"finishTime": 1777430517044,
"finishTime": 1778484383881,
"inputWidgets": {},
"nuid": "1168666b-255b-44a3-968b-4156c93dad53",
"showTitle": false,
"startTime": 1777430506637,
"submitTime": 1777430498072,
"startTime": 1778484351988,
"submitTime": 1778484351685,
"tableResultSettingsMap": {
"0": {
"dataGridStateBlob": "{\"version\":1,\"tableState\":{\"columnPinning\":{\"left\":[\"#row_number#\"],\"right\":[]},\"columnSizing\":{},\"columnVisibility\":{}},\"settings\":{\"columns\":{}},\"syncTimestamp\":1777430717962}",
@@ -366,10 +372,16 @@
"execution_count": 0,
"metadata": {
"application/vnd.databricks.v1+cell": {
"cellMetadata": {},
"cellMetadata": {
"byteLimit": 2048000,
"rowLimit": 10000
},
"finishTime": 1778484383981,
"inputWidgets": {},
"nuid": "efe5e7ee-82b5-46d9-85f7-650756dffbf8",
"showTitle": false,
"startTime": 1778484383903,
"submitTime": 1778484351693,
"tableResultSettingsMap": {},
"title": ""
}

View File

@@ -800,201 +800,4 @@
# COMMAND ----------
# MAGIC %md
# MAGIC ## STEP-14: calculate niad date
# COMMAND ----------
# MAGIC %sql
# MAGIC CREATE OR REPLACE TABLE tmp.tmp_dm_td_ext_retail_niad_month as
# MAGIC WITH ALL_RETIAL_DATA (
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_nataional_niad
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_statin_xzk
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_nataional_oap
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_anti_asthma_copd
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_aagsa_ppi_oral
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_atomizer
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_nataional_rd
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_metoprolol_tartrat
# MAGIC union all
# MAGIC select
# MAGIC max(
# MAGIC nvl(
# MAGIC month,
# MAGIC CONCAT(
# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份前4位
# MAGIC CASE
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月
# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月
# MAGIC END
# MAGIC )
# MAGIC )
# MAGIC ) as month,
# MAGIC 'NOTNIAD' as datatype
# MAGIC from
# MAGIC dwd.dwd_gnd_ext_retail_htn
# MAGIC )
# MAGIC SELECT
# MAGIC MAX(t1.month) as NIAD_MONTH,
# MAGIC max(t2.month) OTHERS_MONTH
# MAGIC FROM
# MAGIC all_retial_data t1
# MAGIC LEFT JOIN (
# MAGIC SELECT
# MAGIC MAX(month) as month
# MAGIC FROM
# MAGIC all_retial_data
# MAGIC WHERE
# MAGIC datatype = 'NOTNIAD'
# MAGIC ) t2
# MAGIC WHERE
# MAGIC t1.datatype = 'NIAD'
# COMMAND ----------
############################################################END################################################################
############################################################END################################################################

View File

@@ -211,12 +211,30 @@ FROM
-- 创建日期2026-04-30
-- 功能: 月份NIAD不进行季度汇总, 新建DM.DM_TF_EXT_RETAIL_NIAD_SALES表做关联
-- ****************************************************
-- INSERT OVERWRITE TABLE DM.DM_TF_EXT_RETAIL_NIAD_SALES
WITH NIAD_DWD_TABLE AS (
select
a.month,
b.iqvia_pack_code as pack_code,
'ROC' AS zk_region,
a.sales_unit,
a.sales_value,
a.counting_unit
from
dwd.dwd_gnd_ext_retail_nataional_niad a
left join dwd.dwd_gnd_ext_retail_pack_property b
on case
when length(zk_product_id) < 7 then right(concat('0000000', zk_product_id), 7)
else zk_product_id
end = b.product_id
where
a.zk_region = '全国'
)
INSERT OVERWRITE TABLE DM.DM_TF_EXT_RETAIL_NIAD_SALES
SELECT
cur.month AS YYYYMM,
cur.pack_code AS PACK_CODE,
'' AS CORP_CODE,
cur.zk_regin AS AUDIT_CODE,
cur.zk_region AS AUDIT_CODE,
'' AS PLATFORM_TYPE,
'' AS STORE_NAME,
'' AS STORE_TYPE,
@@ -244,8 +262,8 @@ SELECT
'' AS PRESCRIPTION_SOURCE,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
FROM (select * from tmp.tmp_retail_pack_rawdata where level_market = 'NIAD') cur
LEFT JOIN (select * from tmp.tmp_retail_pack_rawdata where level_market = 'NIAD') ly
FROM (select * from NIAD_DWD_TABLE ) cur
LEFT JOIN (select * from NIAD_DWD_TABLE ) ly
ON CAST(CAST(ly.month AS INT) + 100 AS STRING) = cur.month
AND ly.pack_code = cur.pack_code
AND ly.zk_regin = cur.zk_regin
AND ly.zk_region = cur.zk_region