以下是修改后的代码:

INSERT INTO db_der.dim_yx_2838_user_work_phone_0614
SELECT
    month_id,
    prov_name,
    '云犀' AS service_type,
    COUNT(DISTINCT CASE WHEN is_innet = '1' THEN user_id END) AS is_innet,
    COUNT(DISTINCT CASE WHEN acct_tag = '1' THEN user_id END) AS acct_tag,
    SUM(total_fee) AS total_fee,
    COUNT(DISTINCT CASE WHEN is_this_dev = '1' THEN user_id END) AS is_this_dev,
    SUM(CASE WHEN is_this_dev = '1' THEN total_fee END) AS total_fee_dev,
    COUNT(DISTINCT CASE WHEN is_this_break = '1' THEN user_id END) AS is_this_break
FROM (
    SELECT a.*, d.prov_desc AS prov_name
    FROM (
        SELECT *
        FROM db_der.dwa_m_prt_e_all_user_info
        WHERE month_id IN ('202306')
        AND is_zq_develop = '1'
    ) a
    INNER JOIN (
        SELECT *
        FROM db_der.DWA_M_MRT_CB_USER_WORK_PHONE
        WHERE month_id IN ('202306')
        AND is_zq_channel = '1'
        AND is_hd = '0'
        AND is_hyk = '0'
        AND is_yx = '1'
    ) b ON a.user_id = b.user_id
    AND a.month_id = b.month_id
    INNER JOIN (
        SELECT *
        FROM db_der.dim_yx_2838_user_0614
        WHERE month_id IN ('202306')
    ) c ON a.user_id = c.user_id
    AND a.month_id = c.month_id
    LEFT JOIN zb_dim.dim_prov d ON a.prov_id = d.prov_id
) t
GROUP BY month_id, prov_name;

修改内容:

  1. 将每个列的别名用AS关键字标记。
  2. 将所有的关键字改为大写。
  3. 在COUNT和SUM函数中添加DISTINCT关键字。
  4. 在FROM子查询中,将内连接用INNER JOIN关键字表示,将左连接用LEFT JOIN关键字表示。
  5. 将代码格式化,使其更易读
帮我改一下这段代码:insert into db_derdim_yx_2838_user_work_phone_0614 selectmonth_idprov_name云犀 service_typecountdistinct case when is_innet=1 then user_id end is_innetcountdistinct case when acct_tag=1 the

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

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