这段代码是一个 SQL 查询语句,用于从表 "temp_lgl_gw_dev_charge" 中获取数据并插入到表 "temp_lgl_gw_dev_charge_result" 的指定分区中。以下是对代码的详细分析:\n\n1. 第一个 "select" 语句:\n\n - 选择 "'全国'" 作为 "prov_part" 列的值,"chnl_type" 列的值保持不变。\n - 使用 "sum" 函数将 "m_fee" 列和 "total_fee" 列的值转为 "double" 类型并相加,结果分别保存到 "m_fee" 和 "total_fee" 列中。\n - 从表 "temp_lgl_gw_dev_charge" 中选择 "month_id" 等于 "${v_month}" 的记录。\n - 根据 "'全国'" 和 "chnl_type" 进行分组,结果作为第一个 "union" 子查询的一部分。\n\n2. 第二个 "select" 语句:\n\n - 从子查询中选择 "a.prov_id", "a.chnl_type", "a.total_fee", "a.m_fee" 作为列。\n - 从 "temp_lgl_gw_dev_charge" 表中选择 "month_id" 等于 "${v_month}" 的记录。\n - 将子查询的结果与 "DIM_PROV_ORD" 表进行左连接,根据 "prov_id" 进行匹配。\n - 使用 "sum" 函数将 "m_fee" 列和 "total_fee" 列的值转为 "double" 类型并相加,结果分别保存到 "m_fee" 和 "total_fee" 列中。\n - 根据 "b.prov_part" 和 "a.chnl_type" 进行分组,结果作为第二个 "union" 子查询的一部分。\n\n3. 第三个 "select" 语句:\n\n - 从 "temp_lgl_gw_dev_charge" 表中选择所有列。\n - 将查询结果与 "DIM_PROV_ORD" 表进行左连接,根据 "prov_id" 进行匹配。\n - 从 "DIM_PROV_ORD" 表中选择 "prov_desc" 列。\n - 选择 "month_id" 等于 "${v_month}" 的记录。\n - 结果作为第三个 "union" 子查询的一部分。\n\n最后,使用 "UNION ALL" 将三个子查询的结果合并为一个结果集,并将结果插入到表 "temp_lgl_gw_dev_charge_result" 的指定分区中 (partition (month_id = '${v_month}'))。

SQL 代码解析:计算出账收入和累计出账收入

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

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