Add EXTERNAL SQL scripts

This commit is contained in:
2026-04-20 14:55:25 +08:00
parent c05ba7ec7e
commit b4979eed82
344 changed files with 61619 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
-- Databricks notebook source
--PKAU维度表
insert overwrite table tmp.tmp_ims_county_pack_audit
SELECT
PACK.Pack_ID,
if( Pack_Code REGEXP '^[0-9]',right(concat('000000000000',Pack_Code),12),Pack_Code) as PACK_CODE,--RIGHT(concat('0000000',Pack_Code),7)
AUDI.Audit_ID,
AUDI.Audit_Name AS AUDIT_COD,
concat(REPLACE(AUDI.Audit_Name,' ','') , '_', if( Pack_Code REGEXP '^[0-9]',right(concat('000000000000',Pack_Code),12),Pack_Code))as PKAU_INDEX,
from_utc_timestamp(current_timestamp,'UTC+8') as etl_insert_dt,
from_utc_timestamp(current_timestamp,'UTC+8') as etl_update_dt
FROM dwd.dwd_gnd_county_dim_pack PACK
CROSS JOIN (
SELECT
Audit_ID,
Audit_Type,
Audit_Name
FROM dwd.dwd_gnd_county_dim_audit
) AUDI
-- COMMAND ----------
---------------------------------------------lastyear的KPI字段---------------------------------------------
insert overwrite table tmp.tmp_ims_county_fact_sales_sum
select
distinct
t1.qtr
,left(t1.qtr,4)*100+right(t1.qtr,1)*3 as yyyymm
,t2.pack_code as pack_cod
,t2.audit_cod as region_cod
,sum(SalesValue_LC ) as SalesValue_LC
,sum(SalesValue_LC_LY) as SalesValue_LC_LY
,sum(Counting_Unit ) as Counting_Unit
,sum(Counting_Unit_LY) as Counting_Unit_LY
,sum(Sales_Unit ) as Sales_Unit
,sum(Sales_Unit_LY) as Sales_Unit_LY
,from_utc_timestamp(current_timestamp,'UTC+8') as etl_insert_dt
,from_utc_timestamp(current_timestamp,'UTC+8') as etl_update_dt
from(
select DISTINCT left(concat(year,'Q',month/3),6) as qtr,pack_id,audit_id,
nvl(SalesValue_LC,0) AS SalesValue_LC,
0 AS SalesValue_LC_LY,
nvl(Counting_Unit,0) AS Counting_Unit,
0 AS Counting_Unit_LY,
nvl(Sales_Unit,0) AS Sales_Unit,
0 AS Sales_Unit_LY
from dwd.dwd_gnd_county_fact_sales
union all
select DISTINCT left(concat(left(year,4),'Q',month/3),6) as qtr,pack_id,audit_id,
0 AS SalesValue_LC,
nvl(SalesValue_LC,0) AS SalesValue_LC_LY,
0 AS Counting_Unit,
nvl(Counting_Unit,0) AS Counting_Unit_LY,
0 AS Sales_Unit,
nvl(Sales_Unit,0) AS Sales_Unit_LY
from (select DISTINCT year+1 as year,month,SalesValue_LC,Counting_Unit,Sales_Unit,pack_id,audit_id from dwd.dwd_gnd_county_fact_sales) fact_ly
where year*100+month in (select distinct year*100+month from dwd.dwd_gnd_county_fact_sales)
)t1
left join tmp.tmp_ims_county_pack_audit t2 on t1.pack_id=t2.pack_id and t1.audit_id=t2.audit_id
group by t1.qtr,t2.pack_code,t2.audit_cod

View File

@@ -0,0 +1,64 @@
-- Databricks notebook source
-------------------------------------county新倒减拆分需求代码示例之KPI递减-------------------------------------
insert overwrite table tmp.tmp_imscounty_Result
with ObuEast5 as (
--OBU L01+L02
SELECT YYYYMM,region_cod,pack_cod,SalesValue_LC,SalesValue_LC_LY,Counting_Unit,Counting_Unit_LY,Sales_Unit,Sales_Unit_LY
FROM tmp.tmp_ims_county_fact_sales_sum
WHERE region_cod = 'County2'
),CountyProv as (
--
SELECT YYYYMM,region_cod,pack_cod,SalesValue_LC,SalesValue_LC_LY,Counting_Unit,Counting_Unit_LY,Sales_Unit,Sales_Unit_LY
FROM tmp.tmp_ims_county_fact_sales_sum
WHERE region_cod NOT IN ('County','County2','National')
)
,CountyProvSH as (
--+
SELECT YYYYMM,pack_cod,SUM(Counting_Unit) Counting_Unit,sum(Counting_Unit_LY) Counting_Unit_LY,SUM(Sales_Unit) Sales_Unit,sum(Sales_Unit_LY) Sales_Unit_LY,SUM(SalesValue_LC) SalesValue_LC,sum(SalesValue_LC_LY) SalesValue_LC_LY
FROM CountyProv
WHERE region_cod IN ('Sichuan','Henan')
GROUP BY YYYYMM,pack_cod
),BBU_Other as (
--BBU County数据BBU Others数据
--BBU County = BBU_OtherProv++(+)
SELECT A.YYYYMM,'BBU_OtherProv' region_cod,A.pack_cod,A.Counting_Unit-NVL(B.Counting_Unit,0) Counting_Unit,A.Counting_Unit_LY-NVL(B.Counting_Unit_LY,0) Counting_Unit_LY,
A.Sales_Unit-NVL(B.Sales_Unit,0) Sales_Unit, A.Sales_Unit_LY-NVL(B.Sales_Unit_LY,0) Sales_Unit_LY,A.SalesValue_LC-NVL(B.SalesValue_LC,0) SalesValue_LC,A.SalesValue_LC_LY-NVL(B.SalesValue_LC_LY,0) SalesValue_LC_LY
FROM tmp.tmp_ims_county_fact_sales_sum A
LEFT JOIN CountyProvSH B ON A.YYYYMM = B.YYYYMM AND
A.pack_cod = B.pack_cod
WHERE A.region_cod = 'County'
),CountyProvOthers_tmp as (
--广
SELECT YYYYMM,pack_cod,SUM(Counting_Unit) Counting_Unit,sum(Counting_Unit_LY) Counting_Unit_LY,SUM(Sales_Unit) Sales_Unit,sum(Sales_Unit_LY) Sales_Unit_LY,SUM(SalesValue_LC) SalesValue_LC,sum(SalesValue_LC_LY) SalesValue_LC_LY
FROM CountyProv
WHERE region_cod IN ('Shandong','Jiangsu','Zhejiang','Guangdong')
GROUP BY YYYYMM,pack_cod
),CountyProvFJ as (
--OBU东五的数据倒减四省数据
SELECT A.YYYYMM, 'OBU_OtherProv' region_cod,A.pack_cod,A.Counting_Unit-NVL(B.Counting_Unit,0) Counting_Unit,A.Counting_Unit_LY-NVL(B.Counting_Unit_LY,0) Counting_Unit_LY,
A.Sales_Unit-NVL(B.Sales_Unit,0) Sales_Unit, A.Sales_Unit_LY-NVL(B.Sales_Unit_LY,0) Sales_Unit_LY,A.SalesValue_LC-NVL(B.SalesValue_LC,0) SalesValue_LC,A.SalesValue_LC_LY-NVL(B.SalesValue_LC_LY,0) SalesValue_LC_LY
FROM ObuEast5 A
LEFT JOIN CountyProvOthers_tmp B ON A.YYYYMM = B.YYYYMM AND A.pack_cod = B.pack_cod
),Result_NonOthers as (
--+BBU other+obu otter
SELECT YYYYMM,region_cod,pack_cod,SalesValue_LC,SalesValue_LC_LY,Counting_Unit,Counting_Unit_LY,Sales_Unit,Sales_Unit_LY
FROM CountyProv
UNION ALL
SELECT YYYYMM,region_cod,pack_cod,SalesValue_LC,SalesValue_LC_LY,Counting_Unit,Counting_Unit_LY,Sales_Unit,Sales_Unit_LY
FROM CountyProvFJ
UNION ALL
SELECT YYYYMM,region_cod,pack_cod,SalesValue_LC,SalesValue_LC_LY,Counting_Unit,Counting_Unit_LY,Sales_Unit,Sales_Unit_LY
FROM BBU_Other
),Result_NonOthersGroup AS (
--other省份数据
SELECT YYYYMM,pack_cod,SUM(Counting_Unit) Counting_Unit,sum(Counting_Unit_LY) Counting_Unit_LY,SUM(Sales_Unit) Sales_Unit,sum(Sales_Unit_LY) Sales_Unit_LY,SUM(SalesValue_LC) SalesValue_LC,sum(SalesValue_LC_LY) SalesValue_LC_LY
FROM Result_NonOthers
GROUP BY YYYYMM,pack_cod
)
SELECT YYYYMM,region_cod,pack_cod,SalesValue_LC,SalesValue_LC_LY,Counting_Unit,Counting_Unit_LY,Sales_Unit,Sales_Unit_LY
FROM Result_NonOthers
UNION ALL
SELECT A.YYYYMM,'Others' region_cod,A.pack_cod,A.SalesValue_LC-NVL(B.SalesValue_LC,0) SalesValue_LC,A.SalesValue_LC_LY-NVL(B.SalesValue_LC_LY,0) SalesValue_LC_LY,A.Counting_Unit-NVL(B.Counting_Unit,0) Counting_Unit,A.Counting_Unit_LY-NVL(B.Counting_Unit_LY,0) Counting_Unit_LY,
A.Sales_Unit-NVL(B.Sales_Unit,0) Sales_Unit, A.Sales_Unit_LY-NVL(B.Sales_Unit_LY,0) Sales_Unit_LY
FROM (SELECT * from tmp.tmp_ims_county_fact_sales_sum WHERE region_cod = 'National') A
LEFT JOIN Result_NonOthersGroup B ON A.YYYYMM = B.YYYYMM AND A.pack_cod = B.pack_cod

View File

@@ -0,0 +1,24 @@
-- Databricks notebook source
-----------------------------------------------county geo表-----------------------------------------------
insert overwrite table dm.dm_ims_td_county_geo
with geo as (
select
distinct
REGION_COD
from tmp.tmp_imscounty_Result
)
select distinct
case when A.PROVINCE_CODE is not null then A.PROVINCE_CODE
when A.PROVINCE_CODE is null and geo.REGION_COD = 'Others' then 'ROC'
when A.PROVINCE_CODE is null and geo.REGION_COD = 'OBU_OtherProv' then 'OBUROC'
when A.PROVINCE_CODE is null and geo.REGION_COD = 'BBU_OtherProv' then 'BBUROC'
end AUDIT_COD,
geo.REGION_COD,
nvl(A.PROVINCE_C,geo.REGION_COD ) PROVINCE_C,
nvl(A.PROVINCE_MAP,geo.REGION_COD ) PROVINCE_MAP,
nvl(INITCAP(A.REGION_CENTER),geo.REGION_COD ) REGION_CENTER
from geo
left join (select * from dm.dm_ims_td_geo where PROVINCE_CODE is not null) A
on geo.REGION_COD = A.PROVINCE

View File

@@ -0,0 +1,36 @@
-- Databricks notebook source
---------------------------------bbu countyobu county拆分需求代码示例之事实表字段开发---------------------------------
insert overwrite table dws.dws_ext_county_tf_sales
select
distinct
cast(cast(t1.YYYYMM as int) as string) as YYYYMM
,concat(left(cast(t1.YYYYMM as int),4 ),'-',right(cast(t1.YYYYMM as int),2),'-01') as DAY_DATE
,t1.pack_cod as PACK_COD
,t1.region_cod as REGION_COD
,geo.AUDIT_COD
,'ALL' as RELATED_FLAG
,'' as ORG_KEY
,'IMS ALL Market' as MARKET
, concat('IMS ALL Market','_',t1.pack_cod ) as MARKET_PACK_KEY
,'' as MARKET_AUDIT_KEY
,'' as SALES_VALUE
,'' as SALES_VALUE_LY
,'' as SALES_VALUE_L2Y
,'' as SALES_UNIT
,'' as SALES_UNIT_LY
,'' as SALES_UNIT_L2Y
,t1.Counting_Unit as CONUTING_UNIT
,t1.Counting_Unit_LY as CONUTING_UNIT_LY
,'' as CONUTING_UNIT_L2Y
,t1.Counting_Unit as PDOT
,'' as PDOT_LY
,'' as PDOT_L2Y
,t1.SalesValue_LC as SALES_VALUE_CAL
,t1.SalesValue_LC_LY as SALES_VALUE_CAL_LY
,t1.Sales_Unit as SALES_UNIT_CAL
,t1.Sales_Unit_LY as SALES_UNIT_CAL_LY
,from_utc_timestamp(current_timestamp,'UTC+8') as etl_insert_dt
,from_utc_timestamp(current_timestamp,'UTC+8') as etl_update_dt
from tmp.tmp_imscounty_Result t1
left join dm.dm_ims_td_county_geo geo
on t1.region_cod = geo.REGION_COD

View File

@@ -0,0 +1,236 @@
-- Databricks notebook source
-- county 自己的维度表 dm_ext_county_td_pack_property
insert overwrite table dm.dm_ext_county_td_pack_property --------------------------------------------county事实表中与CHPA匹配到的维度信息--------------------------------------------
with county_matched_value as (
select
concat(t2.MARKET,t1.PACK_COD) as MARKET_PACK_KEY,
t1.PACK_COD,
t1.PACK_DES,
t1.STGH_DES,
t1.PACK_LCH,
t1.Family_Code,
t1.Family_Name,
t1.PROD_COD,
t1.PROD_DES,
t1.PROD_DES_C,
t1.CMPS_COD,
t1.CMPS_DES,
t1.ATC1_COD,
t1.ATC2_COD,
t1.ATC3_COD,
t1.ATC4_COD,
t1.APP1_COD,
t1.APP2_COD,
t1.APP3_COD,
t1.BIO_DESC,
t1.GENE_ORIG_DESC,
t1.ETH_OTC_DESC,
t1.NRDL_DESC,
t1.NRDL_Entry_Date,
t1.EDL_DESC,
t1.TCM_DESC,
t1.PAED_DESC,
t1.GQCE_DESC,
t1.VBP_DESC,
t1.MANU_COD,
t1.MANU_DES,
t1.MNFL_COD,
t1.MNFL_DES,
t1.CORP_COD,
t1.CORP_DES,
t1.CORP_DES_C,
t1.BrandType,
t2.MARKET,
t2.KEY_COMPETITOR,
t1.IS_AZ,
t1.AZ_MAIN,
null AZ_Related,
t1.atc1_des,
t1.atc1_des_c,
t1.atc2_des,
t1.atc2_des_c,
t1.atc3_des,
t1.atc3_des_c,
t1.atc4_des,
t1.atc4_des_c,
t1.app1_des,
t1.app1_des_c,
t1.app2_des,
t1.app2_des_c,
t1.app3_des,
t1.app3_des_c,
t2.Class,
t1.ETL_INSERT_DT,
t1.ETL_UPDATE_DT
from
dm.dm_ims_td_pack_property t1
left join DM.DM_TD_EXT_CHPA_MARKET_PACK_MAPPING t2 on t1.PACK_COD = t2.PACK_CODE
--yyyymm字段
inner join (
select distinct
PACK_COD
from
dws.dws_ext_county_tf_sales
) t3 on t1.PACK_COD = t3.PACK_COD
),
-------------------------------county事实表中与CHPA没有匹配到的维度信息取county维度表里的维度信息-------------------------------
--获取county表与CHPA没有匹配到的MARKET_PACK_KEY
county_notmatched_key as (select
t3.PACK_COD
from
(
select distinct
PACK_COD
from
dws.dws_ext_county_tf_sales
) t3
where
not exists (
select
1
from
dm.dm_ims_td_pack_property t4
where
t3.PACK_COD = t4.PACK_COD
)
),
county_notmatched_value as (--county维度表里的维度信息
select
distinct
t6.MARKET_PACK_KEY,
t6.PACK_COD,
t6.PACK_DES,
t6.STGH_DES,
t6.PACK_LCH,
t6.Family_Code,
t6.Family_Name,
t6.PROD_COD,
t6.PROD_DES,
t6.PROD_DES_C,
t6.CMPS_COD,
t6.CMPS_DES,
t6.ATC1_COD,
t6.ATC2_COD,
t6.ATC3_COD,
t6.ATC4_COD,
t6.APP1_COD,
t6.APP2_COD,
t6.APP3_COD,
t6.BIO_DESC,
t6.GENE_ORIG_DESC,
t6.ETH_OTC_DESC,
t6.NRDL_DESC,
t6.NRDL_Entry_Date,
t6.EDL_DESC,
t6.TCM_DESC,
t6.PAED_DESC,
t6.GQCE_DESC,
t6.VBP_DESC,
t6.MANU_COD,
t6.MANU_DES,
t6.MNFL_COD,
t6.MNFL_DES,
t6.CORP_COD,
t6.CORP_DES,
t6.CORP_DES_C,
t6.BrandType,
t6.MARKET,
t6.KEY_COMPETITOR,
t6.IS_AZ,
t6.AZ_MAIN,
t6.AZ_Related,
t6.atc1_des,
t6.atc1_des_c,
t6.atc2_des,
t6.atc2_des_c,
t6.atc3_des,
t6.atc3_des_c,
t6.atc4_des,
t6.atc4_des_c,
t6.app1_des,
t6.app1_des_c,
t6.app2_des,
t6.app2_des_c,
t6.app3_des,
t6.app3_des_c,
t6.Class,
from_utc_timestamp(current_timestamp, 'UTC+8') ETL_INSERT_DT,
from_utc_timestamp(current_timestamp, 'UTC+8') ETL_UPDATE_DT
from
county_notmatched_key t5
left join dm.dm_ims_county_td_pack_property t6 --etl时间不同
on t5.PACK_COD = t6.PACK_COD
),
county_total_pack_property as (select
*
from
county_matched_value
union
select
*
from
county_notmatched_value
)
select
MARKET_PACK_KEY,
PACK_COD,
PACK_DES,
STGH_DES,
PACK_LCH,
Family_Code,
Family_Name,
PROD_COD,
PROD_DES,
PROD_DES_C,
CMPS_COD,
CMPS_DES,
ATC1_COD,
ATC2_COD,
ATC3_COD,
ATC4_COD,
APP1_COD,
APP2_COD,
APP3_COD,
BIO_DESC,
GENE_ORIG_DESC,
ETH_OTC_DESC,
NRDL_DESC,
NRDL_Entry_Date,
EDL_DESC,
TCM_DESC,
PAED_DESC,
GQCE_DESC,
VBP_DESC,
MANU_COD,
MANU_DES,
MNFL_COD,
MNFL_DES,
CORP_COD,
CORP_DES,
CORP_DES_C,
BrandType,
MARKET,
upper(NVL(KEY_COMPETITOR, 'Others')) as KEY_COMPETITOR,
IS_AZ,
AZ_MAIN,
AZ_Related,
atc1_des,
atc1_des_c,
atc2_des,
atc2_des_c,
atc3_des,
atc3_des_c,
atc4_des,
atc4_des_c,
app1_des,
app1_des_c,
app2_des,
app2_des_c,
app3_des,
app3_des_c,
Class,
ETL_INSERT_DT,
ETL_UPDATE_DT
from
county_total_pack_property

View File

@@ -0,0 +1,106 @@
-- Databricks notebook source
-- --OBU COUNTY 改为 OBU EAST5、OBU_BU_COUNTY 改为 OBU NON EAST5
-- drop table if exists dm.dm_td_county_pack_region;
-- create table if not exists dm.dm_td_county_pack_region
-- using delta
-- as
-- with tmp as (
-- select
-- t1.pack_cod,
-- t1.region_cod,
-- t2.ATC1_COD,
-- t2.ATC2_COD
-- from (select distinct PACK_COD,REGION_COD from dws.dws_ext_county_tf_sales) t1
-- left join (select distinct PACK_COD,ATC1_COD,ATC2_COD from dm.dm_ext_county_td_pack_property) t2
-- on t1.PACK_COD = t2.pack_cod
-- ),obu_county as (
-- select pack_cod,region_cod,'OBU East5' region_type from tmp where region_cod in ('Shandong','Jiangsu','Zhejiang','Guangdong','OBU_OtherProv') and (ATC2_COD = 'L01' OR ATC2_COD = 'L02')--ATC1_COD = 'L'
-- ),bbu_county as (
-- select pack_cod,region_cod,'BBU COUNTY' region_type from tmp where region_cod in('Henan','Sichuan','BBU_OtherProv')
-- and ATC1_COD <> 'L'
-- ),bbu_bu_county as (
-- select pack_cod,region_cod,'BBU_BU_COUNTY' region_type from tmp where region_cod in ('Guangdong','Zhejiang','Shandong','Jiangsu','Others') and ATC1_COD <> 'L'
-- ),obu_bu_county as (
-- select pack_cod,region_cod,'OBU NonEast5' region_type from tmp where region_cod in ('Henan','Sichuan','Others','BBU_OtherProv') and (ATC2_COD = 'L01' OR ATC2_COD = 'L02')
-- ),county_all as (
-- select * from obu_county
-- union
-- select * from bbu_county
-- union
-- select * from bbu_bu_county
-- union
-- select * from obu_bu_county
-- )
-- select
-- pack_cod,
-- region_cod,
-- region_type
-- from county_all order by region_type
-- COMMAND ----------
----------------------------------------------------------------------------------
--修改时间20240913
--FanXujia
--
--BBU_COUNTYBBU_BU_COUNTY两个区域时ATC1_COD <> 'L'
--使BBU和OBU会有一部分重叠的区域
--
-----region_cod的含义
--OBU_OtherProvATC2=L01L02
--BBU_OtherProvBBU_COUNTY的18个省减去四川
--OthersATC2<>L01L02的数
----------------------------------------------------------------------------------
insert overwrite table dm.dm_td_county_pack_region
with tmp as (
select
t1.pack_cod,
t1.region_cod,
t2.ATC1_COD,
t2.ATC2_COD
from (select distinct PACK_COD,REGION_COD from dws.dws_ext_county_tf_sales) t1
left join (select distinct PACK_COD,ATC1_COD,ATC2_COD from dm.dm_ext_county_td_pack_property) t2
on t1.PACK_COD = t2.pack_cod
)
--bbu_bu_county
,bbu_bu_county as (
select pack_cod,region_cod,'BBU_BU_COUNTY' region_type from tmp
where region_cod in ('Guangdong','Jiangsu','Others','Shandong','Zhejiang') and ATC2_COD NOT IN ('L01','L02')
)
--bbu_bu_county与OBU East5共有
,bbu_bu_county_obu_East5 as (
select pack_cod,region_cod,'bbu_bu_county_obu_East5' region_type from tmp
where region_cod in ('Guangdong','Jiangsu','Shandong','Zhejiang','OBU_OtherProv') and ATC2_COD in ('L01','L02')
)
--bbu_bu_county与OBU NonEast5共有
,bbu_bu_county_obu_nonEast5 as (
select pack_cod,region_cod,'bbu_bu_county_obu_nonEast5' region_type from tmp
where region_cod in ('Others') and ATC2_COD in ('L01','L02')
)
--bbu_county与OBU NonEast5共有
,bbu_county_obu_nonEast5 as (
select pack_cod,region_cod,'bbu_county_obu_nonEast5' region_type from tmp
where region_cod in ('BBU_OtherProv','Henan','Sichuan') and ATC2_COD in ('L01','L02')
)
--bbu_county
,bbu_county as (
select pack_cod,region_cod,'BBU County' region_type from tmp
where region_cod in('BBU_OtherProv','Henan','Sichuan') and ATC2_COD NOT IN ('L01','L02')
)
--
,county_all as (
select * from bbu_bu_county
union
select * from bbu_bu_county_obu_East5
union
select * from bbu_bu_county_obu_nonEast5
union
select * from bbu_county_obu_nonEast5
union
select * from bbu_county
)
select
pack_cod,
region_cod,
region_type
from county_all order by region_type

View File

@@ -0,0 +1,37 @@
-- Databricks notebook source
--county事实表加上region_type字段
insert overwrite table dm.dm_ext_county_tf_sales_region
select
A.YYYYMM,
A.DAY_DATE,
A.PACK_COD,
A.REGION_COD,
A.AUDIT_COD,
A.RELATED_FLAG,
A.ORG_KEY,
A.MARKET,
A.MARKET_PACK_KEY,
A.MARKET_AUDIT_KEY,
A.SALES_VALUE,
A.SALES_VALUE_LY,
A.SALES_VALUE_L2Y,
A.SALES_UNIT,
A.SALES_UNIT_LY,
A.SALES_UNIT_L2Y,
A.CONUTING_UNIT,
A.CONUTING_UNIT_LY,
A.CONUTING_UNIT_L2Y,
A.PDOT,
A.PDOT_LY,
A.PDOT_L2Y,
A.SALES_VALUE_CAL,
A.SALES_VALUE_CAL_LY,
A.SALES_UNIT_CAL,
A.SALES_UNIT_CAL_LY,
A.etl_insert_dt,
A.etl_update_dt,
B.region_type as REGION_TYPE
from dws.dws_ext_county_tf_sales A
left join dm.dm_td_county_pack_region B
on A.PACK_COD = B.pack_cod and A.REGION_COD = B.region_cod
order by region_type

View File

@@ -0,0 +1,146 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_COUNTY_PACK_PROPERTY
-- (
-- MARKET_PACK_KEY STRING,
-- PACK_CODE STRING,
-- PACK_DESC STRING,
-- STGH_DESC STRING,
-- PACK_LCH STRING,
-- FAMILY_CODE STRING,
-- FAMILY_NAME STRING,
-- PROD_CODE STRING,
-- PROD_DESC STRING,
-- PROD_DESC_C STRING,
-- CMPS_CODE STRING,
-- CMPS_DESC STRING,
-- CMPS_DESC_C STRING,
-- ATC1_CODE STRING,
-- ATC2_CODE STRING,
-- ATC3_CODE STRING,
-- ATC4_CODE STRING,
-- APP1_CODE STRING,
-- APP2_CODE STRING,
-- APP3_CODE STRING,
-- BIO_DESC STRING,
-- GENE_ORIG_DESC STRING,
-- ETH_OTC_DESC STRING,
-- NRDL_DESC STRING,
-- NRDL_ENTRY_DATE STRING,
-- EDL_DESC STRING,
-- TCM_DESC STRING,
-- PAED_DESC STRING,
-- GQCE_DESC STRING,
-- VBP_DESC_V STRING,
-- VBP_DESC STRING,
-- MANU_CODE STRING,
-- MANU_DESC STRING,
-- MANU_DESC_C STRING,
-- MNFL_CODE STRING,
-- MNFL_DESC STRING,
-- CORP_CODE STRING,
-- CORP_DESC STRING,
-- CORP_DESC_C STRING,
-- BRANDTYPE STRING,
-- MARKET STRING,
-- KEY_COMPETITOR STRING,
-- IS_AZ STRING,
-- AZ_MAIN STRING,
-- AZ_RELATED STRING,
-- ATC1_DESC STRING,
-- ATC1_DESC_C STRING,
-- ATC2_DESC STRING,
-- ATC2_DESC_C STRING,
-- ATC3_DESC STRING,
-- ATC3_DESC_C STRING,
-- ATC4_DESC STRING,
-- ATC4_DESC_C STRING,
-- APP1_DESC STRING,
-- APP1_DESC_C STRING,
-- APP2_DESC STRING,
-- APP2_DESC_C STRING,
-- APP3_DESC STRING,
-- APP3_DESC_C STRING,
-- CLASS STRING,
-- MARKET_RATIO STRING,
-- COUNTINGUNIT STRING,
-- VBP_BRAND STRING,
-- REPLENISH_FALG STRING,
-- ETL_INSERT_DT TIMESTAMP,
-- ETL_UPDATE_DT TIMESTAMP
-- )
-- USING delta
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_pack_property';
-- -- 上面是生产环境location下面是测试环境location
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_pack_property';
-- COMMAND ----------
INSERT OVERWRITE TABLE DM.DM_TD_EXT_COUNTY_PACK_PROPERTY
SELECT
MARKET_PACK_KEY,
PACK_COD AS PACK_CODE,
PACK_DES AS PACK_DESC,
STGH_DES AS STGH_DESC,
PACK_LCH,
FAMILY_CODE,
FAMILY_NAME,
PROD_COD AS PROD_CODE,
PROD_DES AS PROD_DESC,
PROD_DES_C AS PROD_DESC_C,
CMPS_COD AS CMPS_CODE,
CMPS_DES AS CMPS_DESC,
NULL AS CMPS_DESC_C,
ATC1_COD AS ATC1_CODE,
ATC2_COD AS ATC2_CODE,
ATC3_COD AS ATC3_CODE,
ATC4_COD AS ATC4_CODE,
APP1_COD AS APP1_CODE,
APP2_COD AS APP2_CODE,
APP3_COD AS APP3_CODE,
BIO_DESC,
GENE_ORIG_DESC,
ETH_OTC_DESC,
NRDL_DESC,
NRDL_ENTRY_DATE,
EDL_DESC,
TCM_DESC,
PAED_DESC,
GQCE_DESC,
NULL AS VBP_DESC_V,
VBP_DESC,
MANU_COD AS MANU_CODE,
MANU_DES AS MANU_DESC,
NULL AS MANU_DESC_C,
MNFL_COD AS MNFL_CODE,
MNFL_DES AS MNFL_DESC,
CORP_COD AS CORP_CODE,
CORP_DES AS CORP_DESC,
CORP_DES_C AS CORP_DESC_C,
BRANDTYPE,
MARKET,
KEY_COMPETITOR,
IS_AZ,
AZ_MAIN,
AZ_RELATED,
ATC1_DES AS ATC1_DESC,
ATC1_DES_C AS ATC1_DESC_C,
ATC2_DES AS ATC2_DESC,
ATC2_DES_C AS ATC2_DESC_C,
ATC3_DES AS ATC3_DESC,
ATC3_DES_C AS ATC3_DESC_C,
ATC4_DES AS ATC4_DESC,
ATC4_DES_C AS ATC4_DESC_C,
APP1_DES AS APP1_DESC,
APP1_DES_C AS APP1_DESC_C,
APP2_DES AS APP2_DESC,
APP2_DES_C AS APP2_DESC_C,
APP3_DES AS APP3_DESC,
APP3_DES_C AS APP3_DESC_C,
CLASS,
NULL AS MARKET_RATIO,
NULL AS COUNTINGUNIT,
NULL AS VBP_BRAND,
NULL AS REPLENISH_FALG,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
FROM DM.DM_EXT_COUNTY_TD_PACK_PROPERTY;

View File

@@ -0,0 +1,128 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TF_EXT_COUNTY_SALES (
-- YYYYMM STRING,
-- PACK_CODE STRING,
-- CORP_CODE STRING,
-- AUDIT_CODE STRING,
-- PLATFORM_TYPE STRING,
-- STORE_NAME STRING,
-- STORE_TYPE STRING,
-- REGION_TYPE STRING,
-- PACK_FLAG INT,
-- PROD_FLAG INT,
-- DTP_FLAG INT,
-- SALES_UNIT_CAL DECIMAL(38,10),
-- SALES_UNIT_CAL_LY DECIMAL(38,10),
-- SALES_VALUE_CAL DECIMAL(38,10),
-- SALES_VALUE_CAL_LY DECIMAL(38,10),
-- CONUTING_UNIT DECIMAL(38,10),
-- CONUTING_UNIT_LY DECIMAL(38,10),
-- DATA_SOURCE STRING,
-- INST_CODE STRING COMMENT '内部机构编码',
-- CMPS_FLAG STRING COMMENT '分子式标签',
-- DEPT_NAME STRING COMMENT '科室名称',
-- PRESCRIPTION DECIMAL(38,10) COMMENT '处方张数',
-- PRESCRIPTION_LY DECIMAL(38,10) COMMENT '去年同期处方张数',
-- NEW_CODE STRING COMMENT '主数据关联CODE',
-- AREA STRING COMMENT '城市',
-- H_LEVEL STRING COMMENT '医院类型',
-- REIMBURSE STRING COMMENT '报销情况',
-- REIMBURSE_TYPE STRING COMMENT '报销类型',
-- PRESCRIPTION_SOURCE STRING COMMENT '处方来源',
-- ETL_INSERT_DT TIMESTAMP,
-- ETL_UPDATE_DT TIMESTAMP)
-- USING delta
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_tf_ext_county_sales';
-- -- 上面是生产环境location下面是测试环境location
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_tf_ext_county_sales';
-- COMMAND ----------
INSERT OVERWRITE TABLE DM.DM_TF_EXT_COUNTY_SALES (
YYYYMM,
PACK_CODE,
AUDIT_CODE,
DATA_SOURCE,
SALES_UNIT_CAL,
SALES_UNIT_CAL_LY,
SALES_VALUE_CAL,
SALES_VALUE_CAL_LY,
CONUTING_UNIT,
CONUTING_UNIT_LY,
PRESCRIPTION,
PRESCRIPTION_LY,
PACK_FLAG,
PROD_FLAG,
DTP_FLAG,
CMPS_FLAG,
PLATFORM_TYPE,
STORE_NAME,
STORE_TYPE,
REGION_TYPE,
INST_CODE,
DEPT_NAME,
NEW_CODE,
AREA,
H_LEVEL,
REIMBURSE,
REIMBURSE_TYPE,
PRESCRIPTION_SOURCE,
CORP_CODE,
ETL_INSERT_DT,
ETL_UPDATE_DT
)
SELECT
A.YYYYMM,
A.PACK_COD AS PACK_CODE,
A.AUDIT_COD AS AUDIT_CODE,
'IQVIA-COUNTY(Quarterly)' DATA_SOURCE,
-------------------------------------
SUM(SALES_UNIT_CAL) SALES_UNIT_CAL,
SUM(SALES_UNIT_CAL_LY) as SALES_UNIT_CAL_LY,
SUM(SALES_VALUE_CAL) SALES_VALUE_CAL,
SUM(SALES_VALUE_CAL_LY) as SALES_VALUE_CAL_LY,
SUM(CONUTING_UNIT) CONUTING_UNIT,
SUM(CONUTING_UNIT_LY) as CONUTING_UNIT_LY,
null as prescription,
null as prescription_ly,
-------------------------------------
--Retail藏数逻辑标签------------------
1 PACK_FLAG,
1 PROD_FLAG,
0 DTP_FLAG,
null as cmps_flag,
-------------------------------------
--EC数据标签--------------------------
'' PLATFORM_TYPE,
'' STORE_NAME,
'' STORE_TYPE,
-------------------------------------
--COUNTY数据标签----------------------
NVL(A.REGION_TYPE, '') REGION_TYPE,
-------------------------------------
--AIA数据标签-------------------------
null inst_code, --使
-------------------------------------
--XIE HE 数据标签---------------------
'' as dept_name,
'' as new_code,
'' as area,
'' as h_level,
'' as reimburse,
'' as reimburse_type,
'' as prescription_source,
-------------------------------------
'' as CORP_CODE, --可以移除,报告没有使用
-------------------------------------
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT
FROM
DM.dm_ext_county_tf_sales_region A
where
A.YYYYMM >= '202001'
AND A.MARKET = 'IMS ALL Market'
GROUP BY
A.YYYYMM,
A.PACK_COD,
A.AUDIT_COD,
A.REGION_TYPE

View File

@@ -0,0 +1,208 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_COUNTY_PACK2MARKET (
-- MARKET STRING,
-- PACK_CODE STRING,
-- PACK_DESC STRING,
-- STGH_DESC STRING,
-- PACK_LCH STRING,
-- PROD_CODE STRING,
-- CMPS_CODE STRING,
-- CMPS_DESC STRING,
-- ATC1_CODE STRING,
-- ATC2_CODE STRING,
-- ATC3_CODE STRING,
-- ATC4_CODE STRING,
-- APP1_CODE STRING,
-- APP2_CODE STRING,
-- APP3_CODE STRING,
-- BIO_DESC STRING,
-- GENE_ORIG_DESC STRING,
-- ETH_OTC_DESC STRING,
-- NRDL_DESC STRING,
-- NRDL_ENTRY_DATE STRING,
-- EDL_DESC STRING,
-- TCM_DESC STRING,
-- PAED_DESC STRING,
-- GQCE_DESC STRING,
-- VBP_DESC STRING,
-- MANU_CODE STRING,
-- MANU_DESC STRING,
-- MNFL_CODE STRING,
-- MNFL_DESC STRING,
-- CORP_CODE STRING,
-- CORP_DESC STRING,
-- BRANDTYPE STRING,
-- BU STRING,
-- STARTTIME STRING,
-- ENDTIME STRING,
-- MARKET_RATIO STRING,
-- ETL_INSERT_DT TIMESTAMP,
-- ETL_UPDATE_DT TIMESTAMP)
-- USING delta
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_pack2market';
-- -- 上面是生产环境location下面是测试环境location
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_pack2market';
-- COMMAND ----------
-- 使用 EXCEPT集合差操作简化逻辑
INSERT OVERWRITE TABLE DM.DM_TD_EXT_COUNTY_PACK2MARKET
-- 包含规则
SELECT DISTINCT
T2.MARKET,
T1.PACK_CODE,
T1.PACK_DESC,
T1.STGH_DESC,
T1.PACK_LCH,
T1.PROD_CODE,
T1.CMPS_CODE,
T1.CMPS_DESC,
T1.ATC1_CODE,
T1.ATC2_CODE,
T1.ATC3_CODE,
T1.ATC4_CODE,
T1.APP1_CODE,
T1.APP2_CODE,
T1.APP3_CODE,
T1.BIO_DESC,
T1.GENE_ORIG_DESC AS GENE_ORIG,
T1.ETH_OTC_DESC AS ETH_OTC_D,
T1.NRDL_DESC,
T1.NRDL_ENTRY_DATE AS NRDL_ENTR,
T1.EDL_DESC,
T1.TCM_DESC,
T1.PAED_DESC,
T1.GQCE_DESC,
T1.VBP_DESC,
T1.MANU_CODE,
T1.MANU_DESC,
T1.MNFL_CODE,
T1.MNFL_DESC,
T1.CORP_CODE,
T1.CORP_DESC,
T1.BRANDTYPE,
T2.BU,
T2.STARTTIME,
T2.ENDTIME,
COALESCE(T2.EXTEND_MARKET_RATIO, '1') AS MARKET_RATIO,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
FROM DM.DM_TD_EXT_COUNTY_PACK_PROPERTY AS T1
LEFT JOIN (
SELECT
MARKET,
BU,
STARTTIME,
ENDTIME,
EXTEND_MARKET_RATIO,
ATC1_CODE,
ATC2_CODE,
ATC3_CODE,
ATC4_CODE,
NFC1_CODE,
NFC2_CODE,
NFC3_CODE,
CORPORATION_CODE,
MANUFACTURER_CODE,
PRODUCT_CODE,
PACK_CODE,
STRENGTH,
MOLECULE_CODE
FROM DWD.DWD_GND_IMS_TBLMARKET_BYMONTH
WHERE EXTEND_MARKET IS NULL AND (NOT_IN_FLAG IS NULL OR NOT_IN_FLAG = '1')
) AS T2
ON (T2.ATC1_CODE IS NULL OR T1.ATC1_CODE = T2.ATC1_CODE)
AND (T2.ATC2_CODE IS NULL OR T1.ATC2_CODE = T2.ATC2_CODE)
AND (T2.ATC3_CODE IS NULL OR T1.ATC3_CODE = T2.ATC3_CODE)
AND (T2.ATC4_CODE IS NULL OR T1.ATC4_CODE = T2.ATC4_CODE)
AND (T2.NFC1_CODE IS NULL OR T1.APP1_CODE = T2.NFC1_CODE)
AND (T2.NFC2_CODE IS NULL OR T1.APP2_CODE = T2.NFC2_CODE)
AND (T2.NFC3_CODE IS NULL OR T1.APP3_CODE = T2.NFC3_CODE)
AND (T2.CORPORATION_CODE IS NULL OR T1.CORP_CODE = T2.CORPORATION_CODE)
AND (T2.MANUFACTURER_CODE IS NULL OR T1.MANU_CODE = T2.MANUFACTURER_CODE)
AND (T2.PRODUCT_CODE IS NULL OR T1.PROD_CODE = T2.PRODUCT_CODE)
AND (T2.PACK_CODE IS NULL OR T1.PACK_CODE = T2.PACK_CODE)
AND (T2.STRENGTH IS NULL OR T1.STGH_DESC = T2.STRENGTH)
AND (T2.MOLECULE_CODE IS NULL OR T1.CMPS_CODE = T2.MOLECULE_CODE)
WHERE T2.MARKET IS NOT NULL
EXCEPT
-- 排除规则
SELECT DISTINCT
T2.MARKET,
T1.PACK_CODE,
T1.PACK_DESC,
T1.STGH_DESC,
T1.PACK_LCH,
T1.PROD_CODE,
T1.CMPS_CODE,
T1.CMPS_DESC,
T1.ATC1_CODE,
T1.ATC2_CODE,
T1.ATC3_CODE,
T1.ATC4_CODE,
T1.APP1_CODE,
T1.APP2_CODE,
T1.APP3_CODE,
T1.BIO_DESC,
T1.GENE_ORIG_DESC AS GENE_ORIG,
T1.ETH_OTC_DESC AS ETH_OTC_D,
T1.NRDL_DESC,
T1.NRDL_ENTRY_DATE AS NRDL_ENTR,
T1.EDL_DESC,
T1.TCM_DESC,
T1.PAED_DESC,
T1.GQCE_DESC,
T1.VBP_DESC,
T1.MANU_CODE,
T1.MANU_DESC,
T1.MNFL_CODE,
T1.MNFL_DESC,
T1.CORP_CODE,
T1.CORP_DESC,
T1.BRANDTYPE,
T2.BU,
T2.STARTTIME,
T2.ENDTIME,
COALESCE(T2.EXTEND_MARKET_RATIO, '1') AS MARKET_RATIO,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
FROM DM.DM_TD_EXT_COUNTY_PACK_PROPERTY AS T1
LEFT JOIN (
SELECT
MARKET,
BU,
STARTTIME,
ENDTIME,
EXTEND_MARKET_RATIO,
ATC1_CODE,
ATC2_CODE,
ATC3_CODE,
ATC4_CODE,
NFC1_CODE,
NFC2_CODE,
NFC3_CODE,
CORPORATION_CODE,
MANUFACTURER_CODE,
PRODUCT_CODE,
PACK_CODE,
STRENGTH,
MOLECULE_CODE
FROM DWD.DWD_GND_IMS_TBLMARKET_BYMONTH
WHERE EXTEND_MARKET IS NULL AND NOT_IN_FLAG = '0'
) AS T2
ON (T2.ATC1_CODE IS NULL OR T1.ATC1_CODE = T2.ATC1_CODE)
AND (T2.ATC2_CODE IS NULL OR T1.ATC2_CODE = T2.ATC2_CODE)
AND (T2.ATC3_CODE IS NULL OR T1.ATC3_CODE = T2.ATC3_CODE)
AND (T2.ATC4_CODE IS NULL OR T1.ATC4_CODE = T2.ATC4_CODE)
AND (T2.NFC1_CODE IS NULL OR T1.APP1_CODE = T2.NFC1_CODE)
AND (T2.NFC2_CODE IS NULL OR T1.APP2_CODE = T2.NFC2_CODE)
AND (T2.NFC3_CODE IS NULL OR T1.APP3_CODE = T2.NFC3_CODE)
AND (T2.CORPORATION_CODE IS NULL OR T1.CORP_CODE = T2.CORPORATION_CODE)
AND (T2.MANUFACTURER_CODE IS NULL OR T1.MANU_CODE = T2.MANUFACTURER_CODE)
AND (T2.PRODUCT_CODE IS NULL OR T1.PROD_CODE = T2.PRODUCT_CODE)
AND (T2.PACK_CODE IS NULL OR T1.PACK_CODE = T2.PACK_CODE)
AND (T2.STRENGTH IS NULL OR T1.STGH_DESC = T2.STRENGTH)
AND (T2.MOLECULE_CODE IS NULL OR T1.CMPS_CODE = T2.MOLECULE_CODE)
WHERE T2.MARKET IS NOT NULL;

View File

@@ -0,0 +1,30 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_COUNTY_MARKET_RATIO (
-- MARKET STRING,
-- PACK_CODE STRING,
-- CMPS_CODE STRING,
-- STARTTIME STRING,
-- ENDTIME STRING,
-- MARKET_RATIO STRING,
-- ETL_INSERT_DT TIMESTAMP,
-- ETL_UPDATE_DT TIMESTAMP)
-- USING delta
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_market_ratio';
-- -- 上面是生产环境location下面是测试环境location
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_market_ratio';
-- COMMAND ----------
INSERT OVERWRITE TABLE DM.DM_TD_EXT_COUNTY_MARKET_RATIO
SELECT
DISTINCT
MARKET,
PACK_CODE,
CMPS_CODE,
STARTTIME,
ENDTIME,
MARKET_RATIO,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
FROM DM.DM_TD_EXT_COUNTY_PACK2MARKET
WHERE UPPER(MARKET) NOT LIKE '%ALL%'

View File

@@ -0,0 +1,163 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_COUNTY_MARKET_BRAND_RATIO (
-- MARKET STRING,
-- PACK_CODE STRING,
-- VALUE_BRAND_RATIO FLOAT,
-- VALUE_BRAND_RATIO_START STRING,
-- VALUE_BRAND_RATIO_END STRING,
-- UNIT_BRAND_RATIO FLOAT,
-- UNIT_BRAND_START STRING,
-- UNIT_BRAND_END STRING,
-- COUNTINGUNIT_BRAND_RATIO FLOAT,
-- COUNTINGUNIT_BRAND_START STRING,
-- COUNTINGUNIT_BRAND_END STRING,
-- PDOT_BRAND_RATIO FLOAT,
-- PDOT_BRAND_START STRING,
-- PDOT_BRAND_END STRING,
-- ETL_INSERT_DT TIMESTAMP,
-- ETL_UPDATE_DT TIMESTAMP)
-- USING delta
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_market_brand_ratio';
-- -- 上面是生产环境location下面是测试环境location
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_market_brand_ratio';
-- COMMAND ----------
INSERT OVERWRITE TABLE DM.DM_TD_EXT_COUNTY_MARKET_BRAND_RATIO
SELECT
DISTINCT
T1.MARKET,
T1.PACK_CODE,
CASE
WHEN T2.RATIO IS NOT NULL THEN T2.RATIO
ELSE NVL(T5.RATIO, 1) END AS VALUE_BRAND_RATIO,
CASE
WHEN T2.RATIO IS NOT NULL THEN T2.STARTTIME
ELSE NVL(T5.STARTTIME, 200001) END AS VALUE_BRAND_RATIO_START,
CASE
WHEN T2.RATIO IS NOT NULL THEN T2.ENDTIME
ELSE NVL(T5.ENDTIME, 299912) END AS VALUE_BRAND_RATIO_END,
CASE
WHEN T3.RATIO IS NOT NULL THEN T3.RATIO
ELSE NVL(T6.RATIO, 1) END AS UNIT_BRAND_RATIO,
CASE
WHEN T3.RATIO IS NOT NULL THEN T3.STARTTIME
ELSE NVL(T6.STARTTIME, 200001) END AS UNIT_BRAND_START,
CASE
WHEN T3.RATIO IS NOT NULL THEN T3.ENDTIME
ELSE NVL(T6.ENDTIME, 299912) END AS UNIT_BRAND_END,
1 AS COUNTINGUNIT_BRAND_RATIO,
200001 AS COUNTINGUNIT_BRAND_START,
299912 AS COUNTINGUNIT_BRAND_END,
CASE
WHEN T4.RATIO IS NOT NULL THEN T4.RATIO
ELSE NVL(T7.RATIO, 1) END AS PDOT_BRAND_RATIO,
CASE
WHEN T4.RATIO IS NOT NULL THEN T4.STARTTIME
ELSE NVL(T7.STARTTIME, 200001) END AS PDOT_BRAND_START,
CASE
WHEN T4.RATIO IS NOT NULL THEN T4.ENDTIME
ELSE NVL(T7.ENDTIME, 299912) END AS PDOT_BRAND_END,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
FROM DM.DM_TD_EXT_COUNTY_MARKET_RATIO T1
LEFT JOIN ( --VALUE--PACK
SELECT
DISTINCT
MARKET,
CMPS_COD,
CMPS_DES,
PACK_COD,
PACK_DES,
LEVEL,
TYPE,
CAST(RATIO AS FLOAT) AS RATIO,
CAST(STARTTIME AS INT) STARTTIME,
CAST(ENDTIME AS INT) ENDTIME
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
WHERE UPPER(TYPE) = 'VALUE' AND UPPER(LEVEL) = 'PACK'
) T2 ON T1.MARKET = T2.MARKET AND T1.PACK_CODE = T2.PACK_COD
LEFT JOIN ( --UNIT--PACK
SELECT
DISTINCT
MARKET,
CMPS_COD,
CMPS_DES,
PACK_COD,
PACK_DES,
LEVEL,
TYPE,
CAST(RATIO AS FLOAT) AS RATIO,
CAST(STARTTIME AS INT) STARTTIME,
CAST(ENDTIME AS INT) ENDTIME
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
WHERE UPPER(TYPE) = 'UNIT' AND UPPER(LEVEL) = 'PACK'
) T3 ON T1.MARKET = T3.MARKET AND T1.PACK_CODE = T3.PACK_COD
LEFT JOIN ( --COUNTINGUNIT--PACK
SELECT
DISTINCT
MARKET,
CMPS_COD,
CMPS_DES,
PACK_COD,
PACK_DES,
LEVEL,
TYPE,
CAST(RATIO AS FLOAT) AS RATIO,
CAST(STARTTIME AS INT) STARTTIME,
CAST(ENDTIME AS INT) ENDTIME
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
WHERE UPPER(TYPE) = 'COUNTINGUNIT' AND UPPER(LEVEL) = 'PACK'
) T4 ON T1.MARKET = T4.MARKET AND T1.PACK_CODE = T4.PACK_COD
LEFT JOIN ( --VALUE--MOLECULE
SELECT
DISTINCT
MARKET,
CMPS_COD,
CMPS_DES,
PACK_COD,
PACK_DES,
LEVEL,
TYPE,
CAST(RATIO AS FLOAT) AS RATIO,
CAST(STARTTIME AS INT) STARTTIME,
CAST(ENDTIME AS INT) ENDTIME
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
WHERE UPPER(TYPE) = 'VALUE' AND UPPER(LEVEL) = 'MOLECULE'
) T5 ON T1.MARKET = T5.MARKET AND T1.CMPS_CODE = T5.CMPS_COD
LEFT JOIN ( --UNIT--MOLECULE
SELECT
DISTINCT
MARKET,
CMPS_COD,
CMPS_DES,
PACK_COD,
PACK_DES,
LEVEL,
TYPE,
CAST(RATIO AS FLOAT) AS RATIO,
CAST(STARTTIME AS INT) STARTTIME,
CAST(ENDTIME AS INT) ENDTIME
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
WHERE UPPER(TYPE) = 'UNIT' AND UPPER(LEVEL) = 'MOLECULE'
) T6 ON T1.MARKET = T6.MARKET AND T1.CMPS_CODE = T6.CMPS_COD
LEFT JOIN ( --COUNTINGUNIT--MOLECULE
SELECT
DISTINCT
MARKET,
CMPS_COD,
CMPS_DES,
PACK_COD,
PACK_DES,
LEVEL,
TYPE,
CAST(RATIO AS FLOAT) AS RATIO,
CAST(STARTTIME AS INT) STARTTIME,
CAST(ENDTIME AS INT) ENDTIME
FROM DWD.DWD_GND_IMS_TBLBRANDRATIO_BYMONTH
WHERE UPPER(TYPE) = 'COUNTINGUNIT' AND UPPER(LEVEL) = 'MOLECULE'
) T7 ON T1.MARKET = T7.MARKET
AND T1.CMPS_CODE = T7.CMPS_COD
-- COMMAND ----------

View File

@@ -0,0 +1,62 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_COUNTY_MARKET_PACK_MAPPING
-- (
-- PACK_CODE STRING,
-- MARKET STRING,
-- CLASS STRING,
-- KEY_COMPETITOR STRING,
-- MARKET_RATIO STRING,
-- STARTTIME STRING,
-- ENDTIME STRING,
-- VALUE_BRAND_RATIO STRING,
-- VALUE_BRAND_RATIO_START STRING,
-- VALUE_BRAND_RATIO_END STRING,
-- UNIT_BRAND_RATIO STRING,
-- UNIT_BRAND_START STRING,
-- UNIT_BRAND_END STRING,
-- COUNTINGUNIT_BRAND_RATIO STRING,
-- COUNTINGUNIT_BRAND_START STRING,
-- COUNTINGUNIT_BRAND_END STRING,
-- PDOT_BRAND_RATIO STRING,
-- PDOT_BRAND_START STRING,
-- PDOT_BRAND_END STRING,
-- ETL_INSERT_DT TIMESTAMP,
-- ETL_UPDATE_DT TIMESTAMP
-- )
-- USING delta
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_market_pack_mapping';
-- -- 上面是生产环境location下面是测试环境location
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_market_pack_mapping';
-- COMMAND ----------
INSERT OVERWRITE TABLE DM.DM_TD_EXT_COUNTY_MARKET_PACK_MAPPING
SELECT DISTINCT
T1.PACK_CODE,
T1.MARKET,
T1.CLASS,
T1.KEY_COMPETITOR,
T2.MARKET_RATIO,
T2.STARTTIME,
T2.ENDTIME,
T3.VALUE_BRAND_RATIO,
T3.VALUE_BRAND_RATIO_START,
T3.VALUE_BRAND_RATIO_END,
T3.UNIT_BRAND_RATIO,
T3.UNIT_BRAND_START,
T3.UNIT_BRAND_END,
T3.COUNTINGUNIT_BRAND_RATIO,
T3.COUNTINGUNIT_BRAND_START,
T3.COUNTINGUNIT_BRAND_END,
T3.PDOT_BRAND_RATIO,
T3.PDOT_BRAND_START,
T3.PDOT_BRAND_END,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT,
FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT
FROM
DM.DM_TD_EXT_COUNTY_PACK_PROPERTY T1
LEFT JOIN DM.DM_TD_EXT_COUNTY_MARKET_RATIO T2
ON T1.MARKET = T2.MARKET AND T1.PACK_CODE = T2.PACK_CODE
LEFT JOIN DM.DM_TD_EXT_COUNTY_MARKET_BRAND_RATIO T3
ON T1.MARKET = T3.MARKET AND T1.PACK_CODE = T3.PACK_CODE
WHERE UPPER(T1.MARKET) NOT LIKE "%ALL%"