找文章 / 找答案
精选问答 更多内容
12
返回列表 发新帖

查看报告初始化报表很慢,如何优化

太阳福音铂金二 显示全部楼层 发表于 2023-1-11 10:39:08
yhdata_lyaa 发表于 2023-1-11 10:26
参考https://club.yonghongtech.com/thread-15611-1-1.html

能帮我看看SQL有优化空间吗,为什么执行数据超时呢
select *
from
(
-- 日维度
select
cast(part_dt as date) as dates        --        PART_DT
,part_dt        --        PART_DT
,'日' as time_type
,series_name                                --        车系名称
,case when series_name='汇总' then 1 else 2 end car_num        --        车系排序
-- 平台
,cum_act                                        --        平台累计启动数
,cum_act_and_auth                        --        平台累计启动认证数
,cum_act-cum_act_and_auth as a1        --        平台累计启动未认证数
,day_new_act                                --        平台新增启动数
,day_new_act_auth                        --        平台新增启动认证数
,day_new_act-day_new_act_auth        as a2        --        平台新增未启动数
,cum_act_com_auth                        --        平台累计启动认证过数
,cum_act_vin                                --        平台累计启动认证车辆数
,day_act                                        --        平台启动数
,day_act_auth                                --        平台启动认证数
,day_act-day_act_auth as a3        --        平台启动未认证数
,day_act/cum_act as        a4                 --  平台累计活跃率
,day_act_auth/cum_act_and_auth as a5 -- 平台累计认证活跃率
,(day_act-day_act_auth)/(cum_act-cum_act_and_auth) as a6 -- 平台累计未认证活跃率

-- APP
,cum_app_act                                --        APP累计启动数
,cum_app_act_and_auth                --        APP累计启动认证数
,cum_app_act-cum_app_act_and_auth        as a7        --        APP累计启动未认证数
,day_app_new_act                        --        APP新增启动数
,day_app_new_act_auth                --        APP新增启动认证数
,day_app_new_act-day_app_new_act_auth        as a8        --        APP新增启动未认证数
,cum_app_act_com_auth                --        APP累计启动认证过数
,cum_app_act_vin                        --        APP累计启动认证车辆数
,day_app_act                                --        APP启动数
,day_app_act_auth                        --        APP启动认证数
,day_app_act-day_app_act_auth        as a9                --        APP启动未认证数
,day_app_act/cum_app_act        as a10 -- APP累计活跃率
,day_app_act_auth/cum_app_act_and_auth as a11 -- APP累计认证活跃率
,(day_app_act-day_app_act_auth)/(cum_app_act-cum_app_act_and_auth) as a12 -- APP累计未认证活跃率

-- 小程序
,cum_pro_act                                --        小程序累计启动数
,cum_pro_act_and_auth                --        小程序累计启动认证数
,cum_pro_act-cum_pro_act_and_auth        as a13        --        小程序累计启动未认证数
,day_pro_new_act                        --        小程序新增启动数
,day_pro_new_act_auth                --        小程序新增启动认证数
,day_pro_new_act-day_pro_new_act_auth        as a14        --        小程序新增启动未认证数
,cum_pro_act_com_auth                --        小程序累计启动认证过数
,cum_pro_act_vin                        --        小程序累计启动认证车辆数
,day_pro_act                                --        小程序启动数
,day_pro_act_auth                        --        小程序启动认证数
,day_pro_act-day_pro_act_auth        as a15                --        小程序启动未认证数
,day_pro_act/cum_pro_act as a16 -- 小程累计启动未认证数
,day_pro_act_auth/cum_pro_act_and_auth as a17 -- 小程序累计认证活跃率
,(day_pro_act-day_pro_act_auth)/(cum_pro_act-cum_pro_act_and_auth) as a18 -- 小程序累计未认证活跃率
from bisi_dm.dmk_app_cum_uv_authentication

union all
-- 汇总
select
cast(ra.part_dt as date) as dates
,d.part_dt
,d.time_type
,ra.series_name
,case when ra.series_name='汇总' then 1 else 2 end car_num        --        车系排序
-- 平台
,cum_act                                        --        平台累计启动数
,cum_act_and_auth                        --        平台累计启动认证数
,cum_act-cum_act_and_auth as a1        --        平台累计启动未认证数
,ra.new_acitve                                --        平台新增启动数
,ra.new_active_auth                        --        平台新增启动认证数
,ra.new_acitve-ra.new_active_auth        as a2        --        平台新增未启动数
,cum_act_com_auth                        --        平台累计启动认证过数
,cum_act_vin                                --        平台累计启动认证车辆数
,ra.active                                        --        平台启动数
,ra.active_auth                                --        平台启动认证数
,ra.active-ra.active as a3        --        平台启动未认证数
,ra.active/cum_act as        a4                 --  平台累计活跃率
,ra.active_auth/cum_act_and_auth as a5 -- 平台累计认证活跃率
,(ra.active-ra.active)/(cum_act-cum_act_and_auth) as a6 -- 平台累计未认证活跃率

-- APP
,cum_app_act                                --        APP累计启动数
,cum_app_act_and_auth                --        APP累计启动认证数
,cum_app_act-cum_app_act_and_auth        as a7        --        APP累计启动未认证数
,ra.app_new_acitve                        --        APP新增启动数
,ra.app_new_active_auth                --        APP新增启动认证数
,ra.app_new_acitve-ra.app_new_active_auth        as a8        --        APP新增启动未认证数
,cum_app_act_com_auth                --        APP累计启动认证过数
,cum_app_act_vin                        --        APP累计启动认证车辆数
,ra.app_active                                --        APP启动数
,ra.app_active_auth                        --        APP启动认证数
,ra.app_active-ra.app_active_auth        as a9                --        APP启动未认证数
,ra.app_active/cum_app_act        as a10 -- APP累计活跃率
,ra.app_active_auth/cum_app_act_and_auth as a11 -- APP累计认证活跃率
,(ra.app_active-ra.app_active_auth)/(cum_app_act-cum_app_act_and_auth) as a12 -- APP累计未认证活跃率

-- 小程序
,cum_pro_act                                --        小程序累计启动数
,cum_pro_act_and_auth                --        小程序累计启动认证数
,cum_pro_act-cum_pro_act_and_auth        as a13        --        小程序累计启动未认证数
,ra.pro_new_acitve                        --        小程序新增启动数
,ra.pro_new_active_auth                --        小程序新增启动认证数
,ra.pro_new_acitve-ra.pro_new_active_auth        as a14        --        小程序新增启动未认证数
,cum_pro_act_com_auth                --        小程序累计启动认证过数
,cum_pro_act_vin                        --        小程序累计启动认证车辆数
,ra.pro_active                                --        小程序启动数
,ra.pro_active_auth                        --        小程序启动认证数
,ra.pro_active-ra.pro_active_auth        as a15                --        小程序启动未认证数
,ra.pro_active/cum_pro_act as a16 -- 小程累计启动未认证数
,ra.pro_active_auth/cum_pro_act_and_auth as a17 -- 小程序累计认证活跃率
,(ra.pro_active-ra.pro_active_auth)/(cum_pro_act-cum_pro_act_and_auth) as a18 -- 小程序累计未认证活跃率

from bisi_dm.dmk_app_uv_authentication_d as ra
inner join
( -- 时间维度表
select
  time_id
,time_type
,case when time_type='周' then CONCAT(min(part_dt),'~',max(part_dt))
           when time_type='月' then substr(max(part_dt),1,7)
           when time_type='年' then substr(max(part_dt),1,4)
  end as part_dt
,max(part_dt) cum_date -- 取统计周期内最后一天
from bisi_dm.dmk_app_regi_auth_date d
group by time_id,time_type
) d on ra.time_id = d.time_id
left join bisi_dm.dmk_app_cum_uv_authentication as cra on cra.part_dt = d.cum_date and ra.series_name = cra.series_name
where ra.part_dt = (select max(part_dt) from bisi_dm.dmk_app_user_authentication_d) -- 每日全量更新,只取最后一天
) a
order by car_num

回复

使用道具 举报

曾梦闵白银二 显示全部楼层 发表于 2023-1-11 10:44:20
我记得,如果报告有参数就把参数写入sql,减少数据量。或者如果有复杂的逻辑处理,先数据库创建这个表,逻辑写进去,直接用表。再或者采用数据方便查询的库进行数据存储。
回复

使用道具 举报

12
高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部