update20260427
This commit is contained in:
84
AIA/03 dm_aia_flag.sql
Normal file
84
AIA/03 dm_aia_flag.sql
Normal file
@@ -0,0 +1,84 @@
|
||||
-- Databricks notebook source
|
||||
-----------------------------------------------------------------------------------
|
||||
--修改时间:20241021
|
||||
--修改人:FanXujia
|
||||
--修改内容:
|
||||
--只取最新年-1 ~ 最新年范围内的,称为“2年共有”。增加
|
||||
-----------------------------------------------------------------------------------
|
||||
--共有机构
|
||||
insert overwrite table dm.dm_aia_hp_flag
|
||||
with max_year as (
|
||||
select
|
||||
max(cast(year as int)) as max_year,
|
||||
max(cast(year as int) - 1) as max_year_ly
|
||||
from dwd.dwd_gnd_hospital_not_provided
|
||||
)
|
||||
,hp_flag as (
|
||||
select
|
||||
distinct concat(t1.year, '-Y') as hp_his_flag,
|
||||
case when length(t1.cpa_hospital_code) < 7 then right(concat('0000000',t1.cpa_hospital_code),7) else t1.cpa_hospital_code end as cpa_hospital_code
|
||||
from
|
||||
dwd.dwd_gnd_hospital_not_provided t1
|
||||
cross join max_year t2
|
||||
where cast(t1.year as int) >= t2.max_year_ly
|
||||
)
|
||||
,hp_flag2 as (
|
||||
SELECT
|
||||
cpa_hospital_code,
|
||||
CONCAT_WS(' ∩ ', SORT_ARRAY(COLLECT_LIST(hp_his_flag))) AS FLAG
|
||||
FROM
|
||||
hp_flag
|
||||
GROUP BY
|
||||
cpa_hospital_code
|
||||
)
|
||||
,inst_mapping as (
|
||||
-- select
|
||||
-- distinct right(concat('0000000', org_cd), 7) org_cd,
|
||||
-- ins_cd
|
||||
-- from
|
||||
-- dwd.dwd_gnd_hospitalmapping
|
||||
select distinct
|
||||
case when length(cpa_hospital_code) < 7 then right(concat('0000000',cpa_hospital_code),7) else cpa_hospital_code end as cpa_hospital_code,
|
||||
ins_cd_nl as inst_code
|
||||
from dwd.dwd_gnd_hospital_not_provided
|
||||
)
|
||||
|
||||
,ALL_INS as (
|
||||
select distinct inst_code
|
||||
from dm.dm_ext_aia_sales
|
||||
)
|
||||
|
||||
,flag as (
|
||||
select distinct
|
||||
coalesce(t2.inst_code,t1.cpa_hospital_code) as inst_code,
|
||||
t1.flag as aia_hp_flag,
|
||||
'Y' as FLAG,
|
||||
'AIA(Monthly)' as DATA_SOURCE
|
||||
from hp_flag2 t1
|
||||
left join inst_mapping t2 on t1.cpa_hospital_code = t2.cpa_hospital_code
|
||||
where
|
||||
length(t1.flag) > 6
|
||||
union all
|
||||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'IQVIA-CHPA(Monthly)' as DATA_SOURCE
|
||||
union all
|
||||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'XH Data(Quarterly)' as DATA_SOURCE
|
||||
union all
|
||||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'EC(Monthly)' as DATA_SOURCE
|
||||
union all
|
||||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'Retail(Quarterly)' as DATA_SOURCE
|
||||
union all
|
||||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'CHC(Quarterly)' as DATA_SOURCE
|
||||
union all
|
||||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'THC(Quarterly)' as DATA_SOURCE
|
||||
union all
|
||||
select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'IQVIA-COUNTY(Quarterly)' as DATA_SOURCE
|
||||
)
|
||||
|
||||
select t1.inst_code,
|
||||
NVL(t2.aia_hp_flag,'') as aia_hp_flag,
|
||||
NVL(t2.FLAG,'N') as FLAG,
|
||||
'AIA(Monthly)' as DATA_SOURCE
|
||||
from ALL_INS t1
|
||||
left join flag t2
|
||||
on t1.inst_code = t2.inst_code
|
||||
|
||||
Reference in New Issue
Block a user