这段代码是将数据导入到名为'temp_yt_sxsj_result_sheet1'的表中。代码中使用了 SELECT 语句来选择需要导入的数据,然后将选择的数据插入到 'temp_yt_sxsj_result_sheet1' 表中。

SELECT 语句中包含多个列,这些列的值来自不同的表。具体来说:

  • 'c.month_id' 列来自 'temp_lgl_gw_result' 表的 'month_id' 列。
  • 'a.prov_part' 列来自 'temp_yt_sxsj_result' 表的 'prov_part' 列。
  • 'a.chnl_type' 列来自 'temp_yt_sxsj_result' 表的 'chnl_type' 列。
  • 'a.user_num' 列来自 'temp_yt_sxsj_result' 表的 'user_num' 列。
  • 'a.total_fee' 列来自 'temp_yt_sxsj_result' 表的 'total_fee' 列。
  • 'c.user_num' 列来自 'temp_lgl_gw_result' 表的 'user_num' 列。
  • 'c.user_num / a.user_num' 计算了一个新的列 'user_num2',它表示 'c.user_num' 除以 'a.user_num' 的值。
  • 'c.m_fee / 100' 计算了一个新的列,它表示 'c.m_fee' 除以 100 的值。
  • 'c.total_fee / 100' 计算了一个新的列,它表示 'c.total_fee' 除以 100 的值。
  • 'c.total_fee / 100 /(a.total_fee * cast('${v_month_value}' as bigint))' 计算了一个新的列,它表示 'c.total_fee' 除以 100 再除以 ('a.total_fee' 乘以一个变量 'v_month_value') 的值。
  • CASE 语句用来根据 'a.prov_part' 的不同值,给出不同的结果。当 'a.prov_part' 等于 '全国' 时,返回 0;当 'a.prov_part' 等于 '北10' 时,返回 0.1;当 'a.prov_part' 等于 '南21' 时,返回 0.2;其他情况下,返回 'b.ord_id3' 的值。
  • 'b.ord_id3' 列来自 'DIM_PROV_ORD' 表的 'ord_id3' 列。

LEFT JOIN 语句用来将不同的表连接起来。具体来说:

  • 'temp_yt_sxsj_result' 和 'DIM_PROV_ORD' 表通过 'a.prov_part' 和 'b.prov_desc' 列进行连接。
  • 'temp_yt_sxsj_result' 和 'temp_lgl_gw_result' 表通过 'c.month_id'、'c.prov_part' 和 'a.prov_part' 列进行连接。

WHERE 语句用来筛选满足条件的数据。具体来说,筛选的条件是 'a.month_id' 等于一个变量 'v_last_year_month' 的值。

最后,ORDER BY 语句用来按照特定的顺序对结果进行排序。具体来说,根据 CASE 语句的结果进行排序,当 'a.prov_part' 等于 '全国' 时,排在最前面;当 'a.prov_part' 等于 '北10' 时,排在其后面;当 'a.prov_part' 等于 '南21' 时,排在最后面;其他情况下,根据 'b.ord_id3' 的值进行排序。

SQL 代码解析:将数据导入到 temp_yt_sxsj_result_sheet1 表中

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

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