308 lines
8.8 KiB
SQL
308 lines
8.8 KiB
SQL
-- 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';
|
||
|
||
|
||
-- CREATE OR REPLACE TABLE catalog_e2_ngbi_qas.dwd.dwd_gnd_county_pharbers_prov_fact (
|
||
-- year STRING,
|
||
-- ym STRING,
|
||
-- province_c STRING,
|
||
-- ims_drug_id STRING,
|
||
-- is_hosp_code STRING,
|
||
-- prod_corp STRING,
|
||
-- prod_cod STRING,
|
||
-- pack_cod STRING,
|
||
-- phcd STRING,
|
||
-- prod_des STRING,
|
||
-- cmps_cod STRING,
|
||
-- cmps_des STRING,
|
||
-- corp_cod STRING,
|
||
-- corp_des STRING,
|
||
-- mnfl_cod STRING,
|
||
-- prod_des_c STRING,
|
||
-- cmps_c STRING,
|
||
-- corp_des_c STRING,
|
||
-- pack_des STRING,
|
||
-- spec STRING,
|
||
-- conversion_ratio STRING,
|
||
-- dosage_form STRING,
|
||
-- atc4_cod STRING,
|
||
-- app1_cod STRING,
|
||
-- app1_des STRING,
|
||
-- app1_des_c STRING,
|
||
-- app2_cod STRING,
|
||
-- app2_des STRING,
|
||
-- app2_des_c STRING,
|
||
-- app3_cod STRING,
|
||
-- app3_des STRING,
|
||
-- app3_des_c STRING,
|
||
-- vbp_batch STRING,
|
||
-- vbp STRING,
|
||
-- value STRING,
|
||
-- totalunit STRING,
|
||
-- countingunit STRING,
|
||
-- price STRING,
|
||
-- manu_cod STRING,
|
||
-- manu_des STRING,
|
||
-- manu_des_c STRING,
|
||
-- source_file_path STRING,
|
||
-- source_file_name STRING,
|
||
-- etl_insert_dt STRING)
|
||
-- USING delta
|
||
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DWD/dwd_gnd_county_pharbers_prov_fact'
|
||
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- DBTITLE 1,dwd sales
|
||
CREATE OR REPLACE TEMPORARY VIEW FACT_COUNTY_PREVIOUS
|
||
AS
|
||
SELECT
|
||
CAST(YM AS INT) AS YM,
|
||
CAST(YEAR AS INT) AS YEAR,
|
||
CAST(REPLACE(YM,YEAR,'') AS INT) AS MONTH,
|
||
CAST(VALUE AS DECIMAL(38,10)) AS VALUE,
|
||
CAST(COUNTINGUNIT AS DECIMAL(38,10)) AS COUNTINGUNIT,
|
||
CAST(TOTALUNIT AS DECIMAL(38,10)) AS TOTALUNIT,
|
||
PROVINCE_C,
|
||
PHCD,
|
||
conversion_ratio
|
||
FROM dwd.dwd_gnd_county_pharbers_prov_fact
|
||
|
||
-- COMMAND ----------
|
||
|
||
-- DBTITLE 1,dwd pach2pack
|
||
CREATE OR REPLACE TEMPORARY VIEW DIM_PACK_INFO
|
||
AS
|
||
SELECT
|
||
PACK_COD,
|
||
MAX(IQVIA_PACK_CODE) AS IQVIA_PACK_CODE,
|
||
MAX(countingunit) as COUNTINGUNIT_RATIO
|
||
FROM
|
||
dwd.dwd_gnd_dept_pack_property
|
||
GROUP BY
|
||
PACK_COD
|
||
|
||
-- COMMAND ----------
|
||
|
||
CREATE OR REPLACE TEMPORARY VIEW DIM_PROVINCE
|
||
AS
|
||
select
|
||
t2.province_code,
|
||
CASE
|
||
WHEN
|
||
t2.province_name
|
||
IN ('上海','北京','天津','重庆')
|
||
THEN
|
||
CONCAT(t2.province_name,'市')
|
||
WHEN
|
||
t2.province_name
|
||
IN ('内蒙古','西藏')
|
||
THEN
|
||
CONCAT(t2.province_name,'自治区')
|
||
WHEN
|
||
t2.province_name = '宁夏'
|
||
THEN CONCAT(t2.province_name,'回族自治区')
|
||
WHEN
|
||
t2.province_name = '广西'
|
||
THEN CONCAT(t2.province_name,'壮族自治区')
|
||
WHEN
|
||
t2.province_name = '新疆'
|
||
THEN CONCAT(t2.province_name,'维吾尔自治区')
|
||
ELSE CONCAT(t2.province_name,'省')
|
||
END AS province_name
|
||
from dm.dm_td_geography t2
|
||
where t2.geo_key = t2.province_code
|
||
and province_name not in ('台湾','澳门','香港')
|
||
|
||
-- 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
|
||
)
|
||
|
||
-- ════════════════════════════════════════════
|
||
-- Part 1:省份数据
|
||
-- 20260518 county的省份数据重写
|
||
-- ════════════════════════════════════════════
|
||
WITH original_sales AS (
|
||
SELECT /*+ BROADCAST(T2,T3) */
|
||
T1.YM AS YYYYMM,
|
||
T2.PROVINCE_CODE AS AUDIT_COD,
|
||
T3.IQVIA_PACK_CODE AS PACK_COD,
|
||
SUM(T1.VALUE ) AS SALES_VALUE_CAL,
|
||
SUM(T1.TOTALUNIT ) AS SALES_UNIT_CAL,
|
||
SUM(T1.COUNTINGUNIT ) AS CONUTING_UNIT
|
||
FROM FACT_COUNTY_PREVIOUS AS T1
|
||
LEFT JOIN DIM_PROVINCE AS T2 ON T1.PROVINCE_C = T2.PROVINCE_NAME
|
||
LEFT JOIN DIM_PACK_INFO AS T3 ON T1.PHCD = T3.PACK_COD
|
||
GROUP BY T1.YM,T2.PROVINCE_CODE,T3.IQVIA_PACK_CODE
|
||
)
|
||
|
||
,formated_count_sales_table_detail (
|
||
SELECT
|
||
cy.YYYYMM,
|
||
cy.AUDIT_COD,
|
||
cy.PACK_COD,
|
||
cy.SALES_VALUE_CAL,
|
||
cy.SALES_UNIT_CAL,
|
||
cy.CONUTING_UNIT,
|
||
0 AS SALES_VALUE_CAL_LY,
|
||
0 AS SALES_UNIT_CAL_LY,
|
||
0 AS CONUTING_UNIT_LY
|
||
FROM original_sales AS cy
|
||
|
||
union ALL
|
||
|
||
SELECT
|
||
ly.YYYYMM+100 as YYYYMM,
|
||
ly.AUDIT_COD,
|
||
ly.PACK_COD,
|
||
0 as SALES_VALUE_CAL,
|
||
0 as SALES_UNIT_CAL,
|
||
0 as CONUTING_UNIT,
|
||
-- 去年同期
|
||
ly.SALES_VALUE_CAL AS SALES_VALUE_CAL_LY,
|
||
ly.SALES_UNIT_CAL AS SALES_UNIT_CAL_LY,
|
||
ly.CONUTING_UNIT AS CONUTING_UNIT_LY
|
||
FROM original_sales AS ly
|
||
WHERE ly.yyyymm+100 <= (select max( yyyymm ) from original_sales )
|
||
)
|
||
|
||
,formated_count_sales_table (
|
||
SELECT
|
||
YYYYMM,
|
||
AUDIT_COD,
|
||
PACK_COD,
|
||
SUM(SALES_VALUE_CAL) AS SALES_VALUE_CAL,
|
||
SUM(SALES_UNIT_CAL) AS SALES_UNIT_CAL,
|
||
SUM(CONUTING_UNIT) AS CONUTING_UNIT,
|
||
SUM(SALES_VALUE_CAL_LY) AS SALES_VALUE_CAL_LY,
|
||
SUM(SALES_UNIT_CAL_LY) AS SALES_UNIT_CAL_LY,
|
||
SUM(CONUTING_UNIT_LY) AS CONUTING_UNIT_LY
|
||
FROM formated_count_sales_table_detail
|
||
GROUP BY 1,2,3
|
||
)
|
||
|
||
-- ════════════════════════════════════════════
|
||
-- Part 2:延续合同并表中的结构
|
||
-- 20260518 county的省份数据重写
|
||
-- ════════════════════════════════════════════
|
||
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数据标签----------------------
|
||
'' 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
|
||
formated_count_sales_table A
|
||
where
|
||
A.YYYYMM >= '202001'
|
||
GROUP BY
|
||
A.YYYYMM,
|
||
A.PACK_COD,
|
||
A.AUDIT_COD
|