尝试优化的 SQL:

SELECT dt, ukey, user_type, flag, page_type, source FROM ( SELECT dt, ukey, user_type, 'is_pv' AS flag, page_type, source FROM gamelive.dwd_huya_taskcenter_detail_with_dim_d_i WHERE dt = '${tdate?string('yyyy-MM-dd')}' AND event_name = '任务中心曝光' UNION ALL SELECT dt, ukey, user_type, 'is_sign' AS flag, page_type, source FROM gamelive.dwd_huya_taskcenter_detail_with_dim_d_i WHERE dt = '${tdate?string('yyyy-MM-dd')}' AND eventid = 'usr/click/signin/taskcenter' ) AS tmp GROUP BY dt, ukey, user_type, flag, page_type, source

优化说明:

  1. 将两个子查询的结果使用 UNION ALL 连接,避免使用 GROUP BY 合并结果集时的重复计算;
  2. 在 UNION ALL 外层包裹一个 GROUP BY,避免结果集出现重复行。
帮忙优化一下这个 sql:		select dt ukey user_type is_pv as flagpage_typesource		from gamelivedwd_huya_taskcenter_detail_with_dim_d_i		where dt=$tdatestringyyyy-MM-dd and event_name in 任务中心曝光		group by dtukeyuse

原文地址: http://www.cveoy.top/t/topic/4ey 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录