county-0518
sales 和 pack property 部分修改
This commit is contained in:
313
county/03 DM_TF_EXT_COUNTY_SALES.sql
Normal file
313
county/03 DM_TF_EXT_COUNTY_SALES.sql
Normal file
@@ -0,0 +1,313 @@
|
||||
-- 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 ----------
|
||||
|
||||
|
||||
WITH original_sales AS (
|
||||
SELECT /*+ BROADCAST(T2,T3) */
|
||||
T1.YM AS YYYYMM,
|
||||
T2.PROVINCE_CODE AS AUDIT_COD,
|
||||
T3.IQVIA_PACK_CODE AS PACK_CODE,
|
||||
T1.VALUE AS SALES_VALUE,
|
||||
T1.TOTALUNIT AS SALES_UNIT,
|
||||
T1.COUNTINGUNIT AS COUNTINGUNIT
|
||||
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
|
||||
)
|
||||
|
||||
SELECT
|
||||
cy.YYYYMM,
|
||||
cy.AUDIT_COD,
|
||||
cy.PACK_CODE,
|
||||
cy.SALES_VALUE,
|
||||
cy.SALES_UNIT,
|
||||
cy.COUNTINGUNIT,
|
||||
-- 去年同期:YYYYMM 为 6 位整数,减 100 即同月上一年(如 202403 → 202303)
|
||||
ly.SALES_VALUE AS SALES_VALUE_LY,
|
||||
ly.SALES_UNIT AS SALES_UNIT_LY,
|
||||
ly.COUNTINGUNIT AS COUNTINGUNIT_LY
|
||||
FROM original_sales AS cy
|
||||
LEFT JOIN original_sales AS ly
|
||||
ON ly.YYYYMM = cy.YYYYMM - 100 -- 同月去年
|
||||
AND ly.AUDIT_COD = cy.AUDIT_COD
|
||||
AND ly.PACK_CODE = cy.PACK_CODE
|
||||
|
||||
-- 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,
|
||||
T1.VALUE AS SALES_VALUE_CAL,
|
||||
T1.TOTALUNIT AS SALES_UNIT_CAL,
|
||||
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
|
||||
)
|
||||
|
||||
,formated_count_sales_table (
|
||||
SELECT
|
||||
cy.YYYYMM,
|
||||
cy.AUDIT_COD,
|
||||
cy.PACK_COD,
|
||||
cy.SALES_VALUE_CAL,
|
||||
cy.SALES_UNIT_CAL,
|
||||
cy.CONUTING_UNIT,
|
||||
-- 去年同期:YYYYMM 为 6 位整数,减 100 即同月上一年(如 202403 → 202303)
|
||||
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 cy
|
||||
LEFT JOIN original_sales AS ly
|
||||
ON ly.YYYYMM = cy.YYYYMM - 100 -- 同月去年
|
||||
AND ly.AUDIT_COD = cy.AUDIT_COD
|
||||
AND ly.PACK_COD = cy.PACK_COD
|
||||
)
|
||||
|
||||
-- ════════════════════════════════════════════
|
||||
-- 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
|
||||
Reference in New Issue
Block a user