left join 陷阱之一对多导致数据量增加?

问答 小鱼 ⋅ 于 2018-08-20 17:11:13 ⋅ 最后回复由 青牛 2018-09-05 18:42:59 ⋅ 5814 阅读

insert into tmp_linshi_type (prod_type,acc_nbr,shouligonghao,shouligou,lanzhuangrenjigou,subs_date,lanzhuanggonghao,qudaoxiaolei,jieruhaozhuangtai,

threeM,fourM,fiveM,acc_nbr_gui,serv_type_gui,del_gui,shouli_date_gong,qudaofuwu_gong,acc_nbr_yue,del_yue,gongdanlaiyuan_yue,acc_nbr_yue_jd,del_yue_jd,gongdanlaiyuan_yue_jd)

select distinct a.prod_type,a.acc_nbr,a.shouligonghao,a.shouligou,a.lanzhuangrenjigou,a.subs_date,a.lanzhuanggonghao,a.qudaoxiaolei,a.jieruhaozhuangtai,

a.threeM,a.fourM,a.fiveM,b.SUBS_NBR || ',',b.serv_type,b.ANSWER,c.act_date,c.CHANNEL_SERV,d.SUBS_NBR || ',',d.SERV_TYPE,d.ACT_REMARK,e.SUBS_NBR || ',',e.SERV_TYPE,e.TS_STATUS

from tmp_linshi_itv a

left join

(

select CUST_PHONE,SUBS_NBR,serv_type,ANSWER from RPT_ALL_SUBS_FILE_LIST_2018

union all

select CUST_PHONE,SUBS_NBR,serv_type,ANSWER from RPT_ALL_SUBS_FILE_LIST_201712

) b on a.acc_nbr = b.CUST_PHONE

left join RPT_GONGXIN c on a.acc_nbr = c.sg_nbr and c.month_id >= '201706'

left join RPT_provin_YJ d on a.acc_nbr = d.CUST_NBR and d.month_id >= '201706'

left join RPT_JITUAN_YJ e on a.acc_nbr = e.SHGAO_NBR and e.month_id >= '201706';

如标题,求去重方法或思路,谢谢!!!

成为第一个点赞的人吧 :bowtie:
回复数量: 1
  • 青牛 国内首批大数据从业者,就职于金山,担任大数据团队核心研发工程师
    2018-09-05 18:42:59

    一对多 如果用一的一边左关联多的一边 会让结果和多一边数量差不多的

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter