标签:workstation name area 门店 name2 逻辑 清洗 id select
1 以处理的门店
2 通过门店文本关联uum 的组织结构
3 关联对应的映射表 ,清洗到对应的门店大区。
insert overwrite table d_workstation_city_area select a.category_name, a.workstation_name, a.city_name, a.area_name1, a.area_name2, a.workstation_name2, a.workstation_type, b.workstation_id1 workstation_id, a.city_id, b.workstation_id2 workstation2_id, a.area_id1, a.area_id2, a.workstation_display_name, b.id as workstation_display_id, c.store_id, d.name as store_name, d.store_type, b.workstation_name1 as uum_workstation_name, b.workstation_name2 as uum_workstation_name2, b.workstation_id2 as uum_workstation_id2 from ( -- uum 的清洗逻辑 select a.category_name, a.workstation_name, a.city_name, a.area_name1, a.area_name2, a.workstation_name2, a.workstation_type, a.workstation_id, a.city_id, a.workstation2_id, a.area_id1, a.area_id2, if(a.workstation_name2 is null or a.workstation_name2 = '', a.workstation_uum_name, a.workstation_name2) as workstation_display_name, workstation_uum_name, if(category_name = '育儿嫂', '月嫂', category_name) as category_uum_name from ( select a.category_name as category_name --业务名称 ,coalesce( if(a.category_name in ('月嫂', '育儿嫂'), a.workstation_name, case when a.workstation_type = '自营' and (a.workstation_name like '%苏州%' or a.workstation_name like '%青岛%' or a.workstation_name like '%西安%' ) and (a.workstation_name2 is not null and a.workstation_name2 != '') then a.workstation_name2 else a.workstation_name end ) ,'') as workstation_name --运营站名称 ,coalesce(a.city_name,'') as city_name --城市 ,coalesce(a.area_name1,'') as area_name1 --大区 ,coalesce(a.area_name2,'') as area_name2 --分区 ,coalesce(a.workstation_name2,'') as workstation_name2 --门店 ,coalesce(a.workstation_type,'') as workstation_type --运营站类型 -- ,coalesce(b.id,'0') as workstation_id --运营站id ,coalesce( if(a.category_name = '月嫂', b.id, case when a.workstation_type = '自营' and (a.workstation_name like '%苏州%' or a.workstation_name like '%青岛%' or a.workstation_name like '%西安%' ) and (a.workstation_name2 is not null and a.workstation_name2 != '') then c.id else b.id end ) ,'0') as workstation_id ,coalesce(b.bj_city_id,'0') as city_id --城市id ,coalesce(c.id,'0') as workstation2_id --门店id ,coalesce(a.area_id1,'0') area_id1-- 大区id ,coalesce(a.area_id2,'0') area_id2-- 分区id ,coalesce( if(a.category_name in ('月嫂', '育儿嫂'), case when a.workstation_type = '自营' and (a.workstation_name like '%苏州%' or a.workstation_name like '%青岛%' or a.workstation_name like '%西安%' ) then concat(a.workstation_name, '门店') else a.workstation_name end, case when a.workstation_type = '自营' and (a.workstation_name like '%苏州%' or a.workstation_name like '%青岛%' or a.workstation_name like '%西安%' ) and (a.workstation_name2 is not null and a.workstation_name2 != '') then a.workstation_name2 else a.workstation_name end ) ,'') as workstation_uum_name from ( select '月嫂' as category_name ,t1.workstation_name as workstation_name ,t1.city_name as city_name ,t1.area_name2 as area_name2 ,t1.area_name1 as area_name1 ,t2.name as workstation_name2 ,'代理' as workstation_type ,t1.area_id1 ,t1.area_id2 ,t2.id as workstation_id2 from ( select d.id as workstation_id ,d.name as workstation_name ,replace(d.name,'月嫂代理','') as city_name ,c.name as area_name2 ,a.name as area_name1 ,a.id as area_id1 ,c.id as area_id2 from (--运营站 select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) d left join (--省区 select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) c on d.parent_id = c.id left join (--大区 select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) a on c.parent_id = a.id left join (--月嫂育儿嫂渠道 select id from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and name = '月嫂育儿嫂渠道' and del_flag = 0 ) b on a.parent_id = b.id where b.id is not null and c.name not like '%月嫂代理%' ) t1 left join ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 and name like '%店' ) t2 on t1.workstation_id = t2.parent_id union all select '育儿嫂' as category_name ,t1.workstation_name as workstation_name ,t1.city_name as city_name ,t1.area_name2 as area_name2 ,t1.area_name1 as area_name1 ,t2.name as workstation_name2 ,'代理' as workstation_type ,t1.area_id1 ,t1.area_id2 ,t2.id as workstation_id2 from ( select d.id as workstation_id ,d.name as workstation_name ,replace(d.name,'月嫂代理','') as city_name ,c.name as area_name2 ,a.name as area_name1 ,a.id as area_id1 ,c.id as area_id2 from ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) d left join ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) c on d.parent_id = c.id left join ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) a on c.parent_id = a.id left join ( select id from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and name = '月嫂育儿嫂渠道' and del_flag = 0 ) b on a.parent_id = b.id where b.id is not null and c.name not like '%月嫂代理%' ) t1 left join ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 and name like '%店' ) t2 on t1.workstation_id = t2.parent_id union all select '月嫂' as category_name ,c.name as workstation_name ,replace(c.name,'自营','') as city_name ,'' as area_name2 ,a.name as area_name1 ,'' as workstation_name2 ,'自营' as workstation_type ,a.id as area_id1 ,0 as area_id2 ,0 as workstation_id2 from ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) c left join ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) a on c.parent_id = a.id left join ( select id from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and name = '月嫂独有' and del_flag = 0 ) b on a.parent_id = b.id where b.id is not null union all select '育儿嫂' as category_name ,c.name as workstation_name ,replace(c.name,'自营','') as city_name ,'' as area_name2 ,a.name as area_name1 ,'' as workstation_name2 ,'自营' as workstation_type ,a.id as area_id1 ,0 as area_id2 ,0 as workstation_id2 from ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) c left join ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) a on c.parent_id = a.id left join ( select id from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and name = '育儿嫂独有' and del_flag = 0 ) b on a.parent_id = b.id where b.id is not null union all select '保姆' as category_name ,t1.workstation_name as workstation_name ,t1.city_name as city_name ,t1.area_name2 as area_name2 ,t1.area_name1 as area_name1 ,t2.name as workstation_name2 ,'代理' as workstation_type ,t1.area_id1 ,t1.area_id2 ,t2.id as workstation_id2 from ( select d.id as workstation_id ,d.name as workstation_name ,replace(d.name,'保姆代理','') as city_name ,c.name as area_name2 ,a.name as area_name1 ,a.id as area_id1 ,c.id as area_id2 from (--运营站 select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) d left join (--省区 select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) c on d.parent_id = c.id left join (--大区 select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) a on c.parent_id = a.id left join (--保姆渠道运营部 select id from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and name = '保姆渠道运营部' and del_flag = 0 ) b on a.parent_id = b.id where b.id is not null and c.name not like '%保姆代理%' ) t1 left join ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 and name like '%店' ) t2 on t1.workstation_id = t2.parent_id union all select '保姆' as category_name ,t1.workstation_name as workstation_name ,t1.city_name as city_name ,t1.area_name2 as area_name2 ,t1.area_name1 as area_name1 ,regexp_replace(t2.name, ' ', '') as workstation_name2 ,'自营' as workstation_type ,t1.area_id1 ,t1.area_id2 ,t2.id as workstation_id2 from ( select c.name as workstation_name ,c.id as workstation_id ,replace(c.name,'家政','') as city_name ,'' as area_name2 ,a.name as area_name1 ,'' as workstation_name2 ,'自营' as workstation_type ,a.id as area_id1 ,0 as area_id2 from ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) c left join ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 ) a on c.parent_id = a.id left join ( select id from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and name = '保姆城市运营部' and del_flag = 0 ) b on a.parent_id = b.id where b.id is not null ) t1 left join ( select id ,parent_id ,name from o_jz_uum_sys_office where dt = '${bdp.system.bizdate}' and del_flag = 0 and name like '%店' ) t2 on t1.workstation_id = t2.parent_id ) a left join ( select * from ( select id ,bj_city_id ,name,row_number() over(partition by name order by online_status) as asc_number from d_sys_workstation where del_flag = 0 ) a where asc_number = 1 ) b on a.workstation_name = b.name left join ( select * from ( select id ,bj_city_id,type ,name,row_number() over(partition by name order by online_status) as asc_number from d_sys_workstation where del_flag = 0 ) a where asc_number = 1 ) c on a.workstation_name2 = c.name ) a ) a left join ( -- 原来uum 的组织机构,通过门店名称及业务线关联 select *, case when category_id = 212 then '保姆' when category_id = 205 then '月嫂' when category_id = 270 then '育儿嫂' end as category_name from ( select *, row_number() over(partition by category_id,name order by del_flag, online_status) as row_num from d_sys_workstation ) a where row_num = 1 ) b on a.category_uum_name = b.category_name and a.workstation_display_name = b.name left join ( -- 新的旧运营站对应新门店映射表 select workstation_id,store_id from ( select workstation_id,store_id ,row_number() over(partition by workstation_id order by create_time desc) as desc_num from o_jz_uum_t_workstation_store_relation where dt = '${bdp.system.bizdate}' and del_flag = 0 ) t where desc_num = 1 ) c on b.id = c.workstation_id left join ( select id,name,store_type from d_jz_zt_store_info --where del_flag = 0 ) d on c.store_id = d.id
标签:workstation,name,area,门店,name2,逻辑,清洗,id,select 来源: https://www.cnblogs.com/sakura3/p/12881915.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。