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

@@ -9,12 +9,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1777537485985, "finishTime": 1778478974793,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "86f0c1e4-9672-4b69-b7d7-e972573aa69d", "nuid": "86f0c1e4-9672-4b69-b7d7-e972573aa69d",
"showTitle": false, "showTitle": false,
"startTime": 1777537485980, "startTime": 1778478973655,
"submitTime": 1777537484990, "submitTime": 1778478972034,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -38,12 +38,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1777537486382, "finishTime": 1778478975285,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "f319d145-a050-425c-b86f-c73d2e6f41ad", "nuid": "f319d145-a050-425c-b86f-c73d2e6f41ad",
"showTitle": false, "showTitle": false,
"startTime": 1777537485990, "startTime": 1778478974798,
"submitTime": 1777537484997, "submitTime": 1778478972040,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -89,10 +89,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778478991545,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "a11838c0-855f-4fe6-95d7-790959cb6739", "nuid": "a11838c0-855f-4fe6-95d7-790959cb6739",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485002, "startTime": 1778478975290,
"submitTime": 1778478972044,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -475,10 +477,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778478993866,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "85453796-9385-4a5a-bf20-6bfd459580ae", "nuid": "85453796-9385-4a5a-bf20-6bfd459580ae",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485011, "startTime": 1778478991550,
"submitTime": 1778478972052,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -504,10 +508,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479009600,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "015ef590-887b-4dfa-bfa1-ebd05effc2cf", "nuid": "015ef590-887b-4dfa-bfa1-ebd05effc2cf",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485015, "startTime": 1778478993870,
"submitTime": 1778478972058,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -547,10 +553,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479032113,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "339d06b1-1c67-4249-a105-aaafb352bb38", "nuid": "339d06b1-1c67-4249-a105-aaafb352bb38",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485020, "startTime": 1778479009604,
"submitTime": 1778478972063,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -591,7 +599,7 @@
" ) as yyyymm,\n", " ) as yyyymm,\n",
" first_value(a.pack_id) as pack_id,\n", " first_value(a.pack_id) as pack_id,\n",
" a.iqvia_pack_code,a.platform,\n", " a.iqvia_pack_code,a.platform,\n",
" '' as store_name,\n", " a.store_name,\n",
" a.store_type,\n", " a.store_type,\n",
" sum(a.sales_value) as sales_value,\n", " sum(a.sales_value) as sales_value,\n",
" sum(a.sales_unit) as sales_unit,\n", " sum(a.sales_unit) as sales_unit,\n",
@@ -608,7 +616,7 @@
" when cast(substr(cast(a.yyyymm as string), 5, 2) as int) <= 9 then concat(substr(cast(a.yyyymm as string), 1, 4), '09')\n", " when cast(substr(cast(a.yyyymm as string), 5, 2) as int) <= 9 then concat(substr(cast(a.yyyymm as string), 1, 4), '09')\n",
" else concat(substr(cast(a.yyyymm as string), 1, 4), '12')\n", " else concat(substr(cast(a.yyyymm as string), 1, 4), '12')\n",
" end,\n", " end,\n",
" a.iqvia_pack_code,a.platform,a.store_type\n", " a.iqvia_pack_code,a.platform,a.store_name,a.store_type\n",
") t1\n", ") t1\n",
"group by\n", "group by\n",
" t1.yyyymm,t1.pack_id,t1.iqvia_pack_code,t1.platform,t1.store_name,t1.store_type" " t1.yyyymm,t1.pack_id,t1.iqvia_pack_code,t1.platform,t1.store_name,t1.store_type"
@@ -624,10 +632,12 @@
"rowLimit": 10000 "rowLimit": 10000
}, },
"collapsed": true, "collapsed": true,
"finishTime": 1778479032120,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "c686ec31-8c18-4a4a-96ca-ce5a29f2f676", "nuid": "c686ec31-8c18-4a4a-96ca-ce5a29f2f676",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485025, "startTime": 1778479032117,
"submitTime": 1778478972070,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -676,10 +686,12 @@
"rowLimit": 10000 "rowLimit": 10000
}, },
"collapsed": true, "collapsed": true,
"finishTime": 1778479032125,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "7814d185-5883-4f00-b350-0d5cab1da7f5", "nuid": "7814d185-5883-4f00-b350-0d5cab1da7f5",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485031, "startTime": 1778479032122,
"submitTime": 1778478972075,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -725,10 +737,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479036048,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "b576e313-2815-4991-a92e-82fe68cbaed9", "nuid": "b576e313-2815-4991-a92e-82fe68cbaed9",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485038, "startTime": 1778479032127,
"submitTime": 1778478972079,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -767,10 +781,12 @@
"rowLimit": 10000 "rowLimit": 10000
}, },
"collapsed": true, "collapsed": true,
"finishTime": 1778479036056,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "5fdbf78f-228d-4e26-94b8-94565feb2ddf", "nuid": "5fdbf78f-228d-4e26-94b8-94565feb2ddf",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485043, "startTime": 1778479036052,
"submitTime": 1778478972087,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -957,10 +973,12 @@
"rowLimit": 10000 "rowLimit": 10000
}, },
"collapsed": true, "collapsed": true,
"finishTime": 1778479036062,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "b1f69228-3a47-4a76-ab21-a10e52305a56", "nuid": "b1f69228-3a47-4a76-ab21-a10e52305a56",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485048, "startTime": 1778479036059,
"submitTime": 1778478972095,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -1079,10 +1097,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479043473,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "2c5737c9-b8fe-4b8a-a4b6-f39be69af55c", "nuid": "2c5737c9-b8fe-4b8a-a4b6-f39be69af55c",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485052, "startTime": 1778479036064,
"submitTime": 1778478972102,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -1244,10 +1264,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479050432,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "9b43d6a9-6fd4-4568-bc48-7d7cb7ffe266", "nuid": "9b43d6a9-6fd4-4568-bc48-7d7cb7ffe266",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485057, "startTime": 1778479043477,
"submitTime": 1778478972108,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -1338,10 +1360,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479055876,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "ebb41c4f-a6d7-4dbd-bdb1-304f0c5abae4", "nuid": "ebb41c4f-a6d7-4dbd-bdb1-304f0c5abae4",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485062, "startTime": 1778479050436,
"submitTime": 1778478972114,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -1449,10 +1473,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479060300,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "25bd255c-597c-4bb0-9c7a-0577e28eefee", "nuid": "25bd255c-597c-4bb0-9c7a-0577e28eefee",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485066, "startTime": 1778479055880,
"submitTime": 1778478972119,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -1560,10 +1586,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479098308,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "d13a4ab2-9a37-4ac4-a886-3cf57cc9d41a", "nuid": "d13a4ab2-9a37-4ac4-a886-3cf57cc9d41a",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485071, "startTime": 1778479060304,
"submitTime": 1778478972125,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -1710,10 +1738,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479117659,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "8c861c10-773a-4449-a5dc-c0340e5ec97e", "nuid": "8c861c10-773a-4449-a5dc-c0340e5ec97e",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485077, "startTime": 1778479098312,
"submitTime": 1778478972131,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -1735,10 +1765,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479124771,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "e39d8c66-7469-46db-a2f4-79976266bec2", "nuid": "e39d8c66-7469-46db-a2f4-79976266bec2",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485082, "startTime": 1778479117663,
"submitTime": 1778478972137,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -1800,10 +1832,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479127669,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "bbe40a04-e787-4133-9901-5f331baf912a", "nuid": "bbe40a04-e787-4133-9901-5f331baf912a",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485086, "startTime": 1778479124776,
"submitTime": 1778478972142,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -1829,12 +1863,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1777652323660, "finishTime": 1778479127677,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "f8d0befe-3de4-48a8-ac53-cdc19c897d0f", "nuid": "f8d0befe-3de4-48a8-ac53-cdc19c897d0f",
"showTitle": false, "showTitle": false,
"startTime": 1777652315675, "startTime": 1778479127673,
"submitTime": 1777652314433, "submitTime": 1778478972148,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -2084,12 +2118,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1777652451150, "finishTime": 1778479133948,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "9e6100db-d97c-41a6-8b30-4f7a774c1903", "nuid": "9e6100db-d97c-41a6-8b30-4f7a774c1903",
"showTitle": false, "showTitle": false,
"startTime": 1777652447065, "startTime": 1778479127685,
"submitTime": 1777652446859, "submitTime": 1778478972153,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -2276,12 +2310,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1777652456889, "finishTime": 1778479145677,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "0c0fe2ec-f80e-4872-85bf-fd5d058cc8b8", "nuid": "0c0fe2ec-f80e-4872-85bf-fd5d058cc8b8",
"showTitle": false, "showTitle": false,
"startTime": 1777652453844, "startTime": 1778479133960,
"submitTime": 1777652453744, "submitTime": 1778478972160,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -2297,8 +2331,9 @@
"SELECT\n", "SELECT\n",
"\n", "\n",
" -- CORP_COD汇总行total_flag = Y统一写 'TTL MKT',否则取企业编码\n", " -- CORP_COD汇总行total_flag = Y统一写 'TTL MKT',否则取企业编码\n",
" CASE WHEN total_flag = 'Y' THEN 'TTL MKT'\n", " CASE WHEN TA = 'RX Total' and total_flag = 'Y' THEN ''\n",
" ELSE NVL(CORP_COD, '')\n", " WHEN total_flag = 'Y' THEN 'TTL MKT'\n",
" ELSE NVL(CORP_COD, '未知')\n",
" END AS CORP_COD,\n", " END AS CORP_COD,\n",
"\n", "\n",
" -- 时间维度yyyymm 优先,为空则降级取 ytd\n", " -- 时间维度yyyymm 优先,为空则降级取 ytd\n",
@@ -2320,8 +2355,8 @@
" NVL(KPI_name, '') AS KPI_name,\n", " NVL(KPI_name, '') AS KPI_name,\n",
"\n", "\n",
" -- 数值型 KPI先转 DOUBLE 再 NVL兼容源字段为字符串的情况\n", " -- 数值型 KPI先转 DOUBLE 再 NVL兼容源字段为字符串的情况\n",
" NVL(CAST(Kpi_val AS DOUBLE), '') AS Kpi_val,\n", " nvl(CAST(Kpi_val AS decimal(30,10)),0) AS Kpi_val,\n",
" NVL(CAST(Kpi_val_ly AS DOUBLE), '') AS Kpi_val_ly,\n", " nvl(CAST(Kpi_val_ly AS decimal(30,10)),0) AS Kpi_val_ly,\n",
"\n", "\n",
" -- 字符串型 KPI销售额/销量,含同比)\n", " -- 字符串型 KPI销售额/销量,含同比)\n",
" NVL(str_kpi_val, '') AS str_kpi_val,\n", " NVL(str_kpi_val, '') AS str_kpi_val,\n",
@@ -2368,10 +2403,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479158042,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "6b591466-5af8-40ef-a9b9-c4f137843f18", "nuid": "6b591466-5af8-40ef-a9b9-c4f137843f18",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485111, "startTime": 1778479145698,
"submitTime": 1778478972175,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }
@@ -2479,10 +2516,12 @@
"byteLimit": 2048000, "byteLimit": 2048000,
"rowLimit": 10000 "rowLimit": 10000
}, },
"finishTime": 1778479158640,
"inputWidgets": {}, "inputWidgets": {},
"nuid": "20f3c0a6-f626-4e64-bce4-7653087adb16", "nuid": "20f3c0a6-f626-4e64-bce4-7653087adb16",
"showTitle": false, "showTitle": false,
"submitTime": 1777537485118, "startTime": 1778479158046,
"submitTime": 1778478972181,
"tableResultSettingsMap": {}, "tableResultSettingsMap": {},
"title": "" "title": ""
} }

View File

@@ -415,7 +415,13 @@ LEVEL_MARKET_RD = 'RD Market'
# MAGIC zk_manu_des, # MAGIC zk_manu_des,
# MAGIC zk_corp_des, # MAGIC zk_corp_des,
# MAGIC zk_pack_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 quarter,
# MAGIC replace(price,',','' ), # MAGIC replace(price,',','' ),
# MAGIC replace(sales_unit,',','' ), # MAGIC replace(sales_unit,',','' ),
@@ -618,4 +624,201 @@ LEVEL_MARKET_RD = 'RD Market'
# COMMAND ---------- # 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############################################################## ############################################################END##############################################################

View File

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

View File

@@ -800,201 +800,4 @@
# COMMAND ---------- # 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 -- 创建日期2026-04-30
-- 功能: 月份NIAD不进行季度汇总, 新建DM.DM_TF_EXT_RETAIL_NIAD_SALES表做关联 -- 功能: 月份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 SELECT
cur.month AS YYYYMM, cur.month AS YYYYMM,
cur.pack_code AS PACK_CODE, cur.pack_code AS PACK_CODE,
'' AS CORP_CODE, '' AS CORP_CODE,
cur.zk_regin AS AUDIT_CODE, cur.zk_region AS AUDIT_CODE,
'' AS PLATFORM_TYPE, '' AS PLATFORM_TYPE,
'' AS STORE_NAME, '' AS STORE_NAME,
'' AS STORE_TYPE, '' AS STORE_TYPE,
@@ -244,8 +262,8 @@ SELECT
'' AS PRESCRIPTION_SOURCE, '' AS PRESCRIPTION_SOURCE,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_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 FROM (select * from NIAD_DWD_TABLE ) cur
LEFT JOIN (select * from tmp.tmp_retail_pack_rawdata where level_market = 'NIAD') ly LEFT JOIN (select * from NIAD_DWD_TABLE ) ly
ON CAST(CAST(ly.month AS INT) + 100 AS STRING) = cur.month ON CAST(CAST(ly.month AS INT) + 100 AS STRING) = cur.month
AND ly.pack_code = cur.pack_code AND ly.pack_code = cur.pack_code
AND ly.zk_regin = cur.zk_regin AND ly.zk_region = cur.zk_region

View File

@@ -0,0 +1,233 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TF_EXT_RETAIL_MARKET_SALES (
-- MARKET STRING,
-- KEY_COMPETITOR STRING,
-- CLASS STRING,
-- YYYYMM STRING,
-- PACK_COD STRING,
-- CORP_COD STRING,
-- AUDIT_COD STRING,
-- PLATFORM_TYPE STRING,
-- STORE_NAME STRING,
-- STORE_TYPE STRING,
-- REGION_TYPE STRING,
-- DATA_SOURCE STRING,
-- PACK_FLAG STRING,
-- PROD_FLAG STRING,
-- DTP_FLAG STRING,
-- CMPS_FLAG STRING,
-- NEW_CODE STRING COMMENT '主数据关联CODE',
-- INST_CODE STRING COMMENT '内部机构编码',
-- AIA_HP_FLAG STRING,
-- DEPT_NAME STRING COMMENT '科室名称',
-- H_LEVEL STRING,
-- REIMBURSE STRING COMMENT '报销情况',
-- REIMBURSE_TYPE STRING COMMENT '报销类型',
-- PRESCRIPTION_TYPE STRING COMMENT '处方来源',
-- PRESCRIPTION DECIMAL(35,10),
-- PRESCRIPTION_LY DECIMAL(35,10),
-- VA STRING,
-- UT STRING,
-- CU STRING,
-- PT STRING,
-- SALES_UNIT_CAL DECIMAL(35,6),
-- SALES_UNIT_CAL_LY DECIMAL(35,6),
-- SALES_VALUE_CAL DECIMAL(35,6),
-- SALES_VALUE_CAL_LY DECIMAL(35,6),
-- CONUTING_UNIT DECIMAL(35,6),
-- CONUTING_UNIT_LY DECIMAL(35,6),
-- PDOT DECIMAL(35,6),
-- PDOT_LY DECIMAL(35,6),
-- ETL_INSERT_DT TIMESTAMP,
-- ETL_UPDATE_DT TIMESTAMP
-- )
-- USING delta
-- PARTITIONED BY (DATA_SOURCE)
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_tf_ext_retail_market_sales';
-- -- 上面是生产环境location下面是测试环境location
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_tf_ext_retail_market_sales';
-- COMMAND ----------
INSERT OVERWRITE TABLE
DM.DM_TF_EXT_RETAIL_MARKET_SALES(
MARKET,
KEY_COMPETITOR,
CLASS,
YYYYMM,
PACK_COD,
CORP_COD,
AUDIT_COD,
PLATFORM_TYPE,
STORE_NAME,
STORE_TYPE,
REGION_TYPE,
DATA_SOURCE,
PACK_FLAG,
PROD_FLAG,
DTP_FLAG,
CMPS_FLAG,
NEW_CODE,
INST_CODE,
AIA_HP_FLAG,
DEPT_NAME,
H_LEVEL,
REIMBURSE,
REIMBURSE_TYPE,
PRESCRIPTION_TYPE,
PRESCRIPTION,
PRESCRIPTION_LY,
VA,
UT,
CU,
PT,
SALES_UNIT_CAL,
SALES_UNIT_CAL_LY,
SALES_VALUE_CAL,
SALES_VALUE_CAL_LY,
CONUTING_UNIT,
CONUTING_UNIT_LY,
PDOT,
PDOT_LY,
ETL_INSERT_DT,
ETL_UPDATE_DT
)
WITH
t1_filtered AS (
SELECT
*
FROM
DM.DM_TF_EXT_RETAIL_NIAD_SALES
),
mapping_cleaned AS (
SELECT
*
FROM
(
SELECT
PACK_CODE,
'Retail(Quarterly)' DATASOURCE,
MARKET,
KEY_COMPETITOR,
CLASS,
MARKET_RATIO,
Value_brand_Ratio,
Unit_brand_Ratio,
CountingUnit_brand_Ratio,
PDOT_brand_Ratio,
GREATEST (
starttime,
Value_brand_Ratio_start,
Unit_brand_start,
CountingUnit_brand_start,
PDOT_brand_start
) AS eff_start,
LEAST (
endtime,
Value_brand_Ratio_end,
Unit_brand_end,
CountingUnit_brand_end,
PDOT_brand_end
) AS eff_end
FROM
DM.dm_td_ext_retail_market_pack_mapping
) tmp
WHERE
eff_start <= eff_end -- 在外层子查询中过滤
) ,
joined AS (
SELECT
/*+ BROADCAST(t2, t3) */
t1.*,
-- 当年 ratio
t2.MARKET,
t2.KEY_COMPETITOR,
t2.CLASS,
t2.MARKET_RATIO AS cy_market_ratio,
t2.Value_brand_Ratio AS cy_value_ratio,
t2.Unit_brand_Ratio AS cy_unit_ratio,
t2.CountingUnit_brand_Ratio AS cy_cu_ratio,
t2.PDOT_brand_Ratio AS cy_pdot_ratio,
-- 去年 ratio
t3.MARKET_RATIO AS ly_market_ratio,
t3.Value_brand_Ratio AS ly_value_ratio,
t3.Unit_brand_Ratio AS ly_unit_ratio,
t3.CountingUnit_brand_Ratio AS ly_cu_ratio,
t3.PDOT_brand_Ratio AS ly_pdot_ratio
FROM
t1_filtered t1
LEFT JOIN mapping_cleaned t2 ON t1.PACK_CODE = t2.PACK_CODE
AND t1.DATA_SOURCE = t2.DATASOURCE
AND t1.YYYYMM >= t2.eff_start
AND t1.YYYYMM <= t2.eff_end
LEFT JOIN mapping_cleaned t3 ON t1.PACK_CODE = t3.PACK_CODE
AND t1.DATA_SOURCE = t3.DATASOURCE
AND (t1.YYYYMM - 100) >= t3.eff_start
AND (t1.YYYYMM - 100) <= t3.eff_end
AND t2.MARKET = t3.MARKET -- 保持原逻辑
)
SELECT
NVL(MARKET, 'ALL Market') AS MARKET,
NVL(KEY_COMPETITOR, 'OTHERS') AS KEY_COMPETITOR,
CASE
WHEN trim(lower(CLASS)) = 'others' THEN 'OTHERS'
WHEN CLASS IS NULL THEN 'OTHERS'
ELSE CLASS
END AS CLASS,
YYYYMM,
PACK_CODE,
CORP_CODE,
AUDIT_CODE,
PLATFORM_TYPE,
STORE_NAME,
STORE_TYPE,
REGION_TYPE,
DATA_SOURCE,
PACK_FLAG,
PROD_FLAG,
DTP_FLAG,
CMPS_FLAG,
NEW_CODE,
INST_CODE,
NULL AS AIA_HP_FLAG,
DEPT_NAME,
H_LEVEL,
REIMBURSE,
REIMBURSE_TYPE,
PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE,
CAST(PRESCRIPTION AS DECIMAL(35, 6)) AS PRESCRIPTIONAS,
CAST(PRESCRIPTION_LY AS DECIMAL(35, 6)) AS PRESCRIPTION_LY,
-- 预计算公用因子,避免重复计算
NVL(NVL(cy_market_ratio, 1) * cy_value_ratio, 1) AS VA,
NVL(NVL(cy_market_ratio, 1) * cy_unit_ratio, 1) AS UT,
NVL(NVL(cy_market_ratio, 1) * cy_cu_ratio, 1) AS CU,
NVL(NVL(cy_market_ratio, 1) * cy_pdot_ratio, 1) AS PT,
CAST(
SALES_UNIT_CAL * NVL(cy_unit_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6)
) AS SALES_UNIT_CAL,
CAST(
SALES_UNIT_CAL_LY * NVL(ly_unit_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6)
) AS SALES_UNIT_CAL_LY,
CAST(
SALES_VALUE_CAL * NVL(cy_value_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6)
) AS SALES_VALUE_CAL,
CAST(
SALES_VALUE_CAL_LY * NVL(ly_value_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6)
) AS SALES_VALUE_CAL_LY,
CAST(
CONUTING_UNIT * NVL(cy_cu_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6)
) AS CONUTING_UNIT,
CAST(
CONUTING_UNIT_LY * NVL(ly_cu_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6)
) AS CONUTING_UNIT_LY,
CAST(
CONUTING_UNIT * NVL(cy_pdot_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6)
) AS PDOT,
CAST(
CONUTING_UNIT_LY * NVL(ly_pdot_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6)
) AS PDOT_LY,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
FROM
joined;

View File

@@ -223,6 +223,7 @@
-- COMMAND ---------- -- COMMAND ----------
-- DBTITLE 1,market_sales
INSERT OVERWRITE TABLE INSERT OVERWRITE TABLE
DM.DM_TF_EXT_UNIONALL_MARKET_SALES DM.DM_TF_EXT_UNIONALL_MARKET_SALES
WITH WITH
@@ -522,146 +523,3 @@ SELECT
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
FROM FROM
joined; joined;
-- COMMAND ----------
INSERT into TABLE
DM.DM_TF_EXT_UNIONALL_MARKET_SALES
WITH
t1_filtered AS (
SELECT
*
FROM
DM.DM_TF_EXT_RETAIL_NIAD_SALES
),
mapping_cleaned AS (
SELECT
*
FROM
(
SELECT
PACK_CODE,
DATASOURCE,
MARKET,
KEY_COMPETITOR,
CLASS,
MARKET_RATIO,
Value_brand_Ratio,
Unit_brand_Ratio,
CountingUnit_brand_Ratio,
PDOT_brand_Ratio,
GREATEST (
starttime,
Value_brand_Ratio_start,
Unit_brand_start,
CountingUnit_brand_start,
PDOT_brand_start
) AS eff_start,
LEAST (
endtime,
Value_brand_Ratio_end,
Unit_brand_end,
CountingUnit_brand_end,
PDOT_brand_end
) AS eff_end
FROM
DM.dm_td_ext_unionall_market_pack_mapping
) tmp
WHERE
eff_start <= eff_end -- 在外层子查询中过滤
) ,
joined AS (
SELECT
/*+ BROADCAST(t2, t3) */
t1.*,
-- 当年 ratio
t2.MARKET,
t2.KEY_COMPETITOR,
t2.CLASS,
t2.MARKET_RATIO AS cy_market_ratio,
t2.Value_brand_Ratio AS cy_value_ratio,
t2.Unit_brand_Ratio AS cy_unit_ratio,
t2.CountingUnit_brand_Ratio AS cy_cu_ratio,
t2.PDOT_brand_Ratio AS cy_pdot_ratio,
-- 去年 ratio
t3.MARKET_RATIO AS ly_market_ratio,
t3.Value_brand_Ratio AS ly_value_ratio,
t3.Unit_brand_Ratio AS ly_unit_ratio,
t3.CountingUnit_brand_Ratio AS ly_cu_ratio,
t3.PDOT_brand_Ratio AS ly_pdot_ratio
FROM
t1_filtered t1
LEFT JOIN mapping_cleaned t2 ON t1.PACK_CODE = t2.PACK_CODE
AND t1.DATA_SOURCE = t2.DATASOURCE
AND t1.YYYYMM >= t2.eff_start
AND t1.YYYYMM <= t2.eff_end
LEFT JOIN mapping_cleaned t3 ON t1.PACK_CODE = t3.PACK_CODE
AND t1.DATA_SOURCE = t3.DATASOURCE
AND (t1.YYYYMM - 100) >= t3.eff_start
AND (t1.YYYYMM - 100) <= t3.eff_end
AND t2.MARKET = t3.MARKET -- 保持原逻辑
)
SELECT
NVL(MARKET, 'ALL Market') AS MARKET,
NVL(KEY_COMPETITOR, 'OTHERS') AS KEY_COMPETITOR,
CASE
WHEN trim(lower(CLASS)) = 'others' THEN 'OTHERS'
WHEN CLASS IS NULL THEN 'OTHERS'
ELSE CLASS
END AS CLASS,
YYYYMM,
PACK_CODE,
CORP_CODE,
AUDIT_CODE,
PLATFORM_TYPE,
STORE_NAME,
STORE_TYPE,
REGION_TYPE,
DATA_SOURCE,
PACK_FLAG,
PROD_FLAG,
DTP_FLAG,
CMPS_FLAG,
NEW_CODE,
INST_CODE,
NULL AS AIA_HP_FLAG,
DEPT_NAME,
H_LEVEL,
REIMBURSE,
REIMBURSE_TYPE,
PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE,
PRESCRIPTION,
PRESCRIPTION_LY,
-- 预计算公用因子,避免重复计算
NVL(NVL(cy_market_ratio, 1) * cy_value_ratio, 1) AS VA,
NVL(NVL(cy_market_ratio, 1) * cy_unit_ratio, 1) AS UT,
NVL(NVL(cy_market_ratio, 1) * cy_cu_ratio, 1) AS CU,
NVL(NVL(cy_market_ratio, 1) * cy_pdot_ratio, 1) AS PT,
CAST(
SALES_UNIT_CAL * NVL(cy_unit_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6)
) AS SALES_UNIT_CAL,
CAST(
SALES_UNIT_CAL_LY * NVL(ly_unit_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6)
) AS SALES_UNIT_CAL_LY,
CAST(
SALES_VALUE_CAL * NVL(cy_value_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6)
) AS SALES_VALUE_CAL,
CAST(
SALES_VALUE_CAL_LY * NVL(ly_value_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6)
) AS SALES_VALUE_CAL_LY,
CAST(
CONUTING_UNIT * NVL(cy_cu_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6)
) AS CONUTING_UNIT,
CAST(
CONUTING_UNIT_LY * NVL(ly_cu_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6)
) AS CONUTING_UNIT_LY,
CAST(
CONUTING_UNIT * NVL(cy_pdot_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6)
) AS PDOT,
CAST(
CONUTING_UNIT_LY * NVL(ly_pdot_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6)
) AS PDOT_LY,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
FROM
joined;

View File

@@ -80,13 +80,15 @@ SELECT
T0.STORE_TYPE, T0.STORE_TYPE,
T0.REGION_TYPE, T0.REGION_TYPE,
T0.DATA_SOURCE, T0.DATA_SOURCE,
CASE WHEN P.MARKET IS NOT NULL THEN 1 CASE WHEN P.MARKET IS NOT NULL AND T0.PACK_FLAG = 1 THEN 1
WHEN T0.PACK_FLAG = 0 THEN 0 ELSE 2 END PACK_FLAG, WHEN P.MARKET IS NOT NULL THEN 2
CASE WHEN P.MARKET IS NOT NULL THEN 1 ELSE 0 END PACK_FLAG,
CASE WHEN P.MARKET IS NOT NULL AND T0.PROD_FLAG = 1 THEN 1
WHEN P.MARKET IS NOT NULL THEN 2
WHEN T0.MARKET = 'Metoprolol Succinate Market' AND PACK.PROD_DES = 'BETALOC ZOK' THEN 1 WHEN T0.MARKET = 'Metoprolol Succinate Market' AND PACK.PROD_DES = 'BETALOC ZOK' THEN 1
WHEN T0.MARKET = 'Atorvastatin Market' AND PACK.PROD_DES = 'LIPITOR' THEN 1 WHEN T0.MARKET = 'Atorvastatin Market' AND PACK.PROD_DES = 'LIPITOR' THEN 1
WHEN T0.MARKET = 'AZITHROMYCIN Market' AND PACK.PROD_DES = 'ZITHROMAX' THEN 1 WHEN T0.MARKET = 'AZITHROMYCIN Market' AND PACK.PROD_DES = 'ZITHROMAX' THEN 1
WHEN T0.PROD_FLAG = 0 THEN 0 ELSE 2 END PROD_FLAG, ELSE 0 END PROD_FLAG,
T0.DTP_FLAG, T0.DTP_FLAG,
CASE WHEN P.MARKET IS NOT NULL THEN 1 CASE WHEN P.MARKET IS NOT NULL THEN 1
WHEN T0.MARKET = 'Metoprolol Succinate Market' AND PACK.PROD_DES = 'BETALOC ZOK' THEN 1 WHEN T0.MARKET = 'Metoprolol Succinate Market' AND PACK.PROD_DES = 'BETALOC ZOK' THEN 1
@@ -137,58 +139,6 @@ WHERE
-- COMMAND ---------- -- COMMAND ----------
CREATE OR REPLACE TEMPORARY VIEW RETAIL_EXTERNAL_SALES_ALL AS
SELECT
T0.MARKET,
T0.KEY_COMPETITOR,
T0.CLASS,
T0.YYYYMM,
T0.PACK_COD,
T0.CORP_COD,
T0.AUDIT_COD,
T0.PLATFORM_TYPE,
T0.STORE_NAME,
T0.STORE_TYPE,
T0.REGION_TYPE,
T0.DATA_SOURCE,
CASE WHEN T1.PACK_COD IS NOT NULL THEN 1 ELSE T0.PACK_FLAG END PACK_FLAG,
CASE WHEN T2.PROD_COD IS NOT NULL THEN 1 ELSE T0.PROD_FLAG END PROD_FLAG,
T0.DTP_FLAG,
CASE WHEN T3.CMPS_COD IS NOT NULL THEN 1 ELSE T0.CMPS_FLAG END CMPS_FLAG,
T0.NEW_CODE,
T0.INST_CODE,
T0.AIA_HP_FLAG,
T0.DEPT_NAME,
T0.H_LEVEL,
T0.REIMBURSE,
T0.REIMBURSE_TYPE,
T0.PRESCRIPTION_TYPE,
T0.VA,
T0.UT,
T0.CU,
T0.PT,
T0.SALES_UNIT_CAL,
T0.SALES_UNIT_CAL_LY,
T0.SALES_VALUE_CAL,
T0.SALES_VALUE_CAL_LY,
T0.CONUTING_UNIT,
T0.CONUTING_UNIT_LY,
T0.PDOT,
T0.PDOT_LY,
T0.PRESCRIPTION,
T0.PRESCRIPTION_LY,
T0.MERGED_DATA_DTP_OTHERS
FROM
RETAIL_EXTERNAL_SALES AS T0
LEFT JOIN (SELECT DISTINCT PACK_COD FROM RETAIL_EXTERNAL_SALES WHERE PACK_FLAG = 1) T1
ON T0.PACK_COD = T1.PACK_COD
LEFT JOIN (SELECT DISTINCT PROD_COD FROM RETAIL_EXTERNAL_SALES WHERE PROD_FLAG = 1) T2
ON T0.PROD_COD = T2.PROD_COD
LEFT JOIN (SELECT DISTINCT CMPS_COD FROM RETAIL_EXTERNAL_SALES WHERE CMPS_FLAG = 1) T3
ON T0.CMPS_COD = T3.CMPS_COD
-- COMMAND ----------
CREATE OR REPLACE TEMPORARY VIEW ALL_EXTERNAL_SALES AS CREATE OR REPLACE TEMPORARY VIEW ALL_EXTERNAL_SALES AS
--DTP --DTP
SELECT SELECT
@@ -287,12 +237,13 @@ SELECT
1 MERGED_DATA_DTP_OTHERS 1 MERGED_DATA_DTP_OTHERS
FROM FROM
DM.DM_TF_EXT_UNIONALL_MARKET_SALES AS T0 DM.DM_TF_EXT_UNIONALL_MARKET_SALES AS T0
LEFT JOIN ( INNER JOIN (
SELECT SELECT
OTHERS_MONTH OTHERS_MONTH
FROM FROM
tmp.tmp_dm_td_ext_ec_niad_month tmp.tmp_dm_td_ext_ec_niad_month
) T1 --EC取非niad先来数据部分 ) T1 --EC取非niad先来数据部分
ON T0.YYYYMM <= T1.others_month
WHERE WHERE
T0.DATA_SOURCE = 'EC(Monthly)' T0.DATA_SOURCE = 'EC(Monthly)'
AND SUBSTR(T0.YYYYMM, 5, 2) IN ('03', '06', '09', '12') AND SUBSTR(T0.YYYYMM, 5, 2) IN ('03', '06', '09', '12')
@@ -339,7 +290,7 @@ SELECT
T0.PRESCRIPTION_LY, T0.PRESCRIPTION_LY,
T0.MERGED_DATA_DTP_OTHERS T0.MERGED_DATA_DTP_OTHERS
FROM FROM
RETAIL_EXTERNAL_SALES_ALL AS T0 RETAIL_EXTERNAL_SALES AS T0
--OTHERS DATA SOURCE --OTHERS DATA SOURCE
UNION ALL UNION ALL
SELECT SELECT
@@ -389,14 +340,6 @@ WHERE
-- COMMAND ---------- -- COMMAND ----------
-- COMMAND ----------
select distinct PACK_FLAG,PROD_FLAG from DM.DM_TF_EXT_UNIONALL_MARKET_SALES where DATA_SOURCE = 'Retail(Quarterly)'
-- COMMAND ----------
create or replace table tmp.tmp_tf_ext_aia_target_inst create or replace table tmp.tmp_tf_ext_aia_target_inst
-- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/TMP/tmp_tf_ext_aia_target_inst'; -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/TMP/tmp_tf_ext_aia_target_inst';
-- 上面是生产环境location下面是测试环境location -- 上面是生产环境location下面是测试环境location
@@ -535,7 +478,7 @@ FROM
-- COMMAND ---------- -- COMMAND ----------
-- delete from dm.DM_TF_EXT_UNIONALL_SALES_MAPPING where DATA_SOURCE IN ('Retail(Quarterly)', 'EC(Monthly)') delete from dm.DM_TF_EXT_UNIONALL_SALES_MAPPING where DATA_SOURCE IN ('Retail(Quarterly)', 'EC(Monthly)')
-- COMMAND ---------- -- COMMAND ----------

View File

@@ -209,7 +209,7 @@ SELECT /*+ BROADCAST(m) */
CAST(round(kpi.DIGITAL_SPREAD_RATE,2) AS string)||'%' AS DIGITAL_SPREAD_RATE, CAST(round(kpi.DIGITAL_SPREAD_RATE,2) AS string)||'%' AS DIGITAL_SPREAD_RATE,
CAST(round(kpi.WEIGHTED_SPREAD_RATE,2) AS string)||'%' AS WEIGHTED_SPREAD_RATE CAST(round(kpi.WEIGHTED_SPREAD_RATE,2) AS string)||'%' AS WEIGHTED_SPREAD_RATE
FROM DM.DM_TF_EXT_UNIONALL_MARKET_SALES t FROM DM.DM_TF_EXT_RETAIL_MARKET_SALES t
LEFT SEMI JOIN niad_pack_cods m ON t.PACK_COD = m.PACK_COD LEFT SEMI JOIN niad_pack_cods m ON t.PACK_COD = m.PACK_COD
LEFT JOIN kpi_pivot kpi LEFT JOIN kpi_pivot kpi
ON kpi.pack_code = t.PACK_COD ON kpi.pack_code = t.PACK_COD