220622_preview,知识点10:DWS层搭建--销售主题宽表--step1--字段抽取

220622_preview

知识点10:DWS层搭建--销售主题宽表--step1--字段抽取

表关系

一切的前提是,先了解原始数据的结构和关系。

对于销售主题宽表来说,其当中的指标和维度字段分别来源于DWB层:订单明细宽表店铺明细宽表商品明细宽表

比如商圈、店铺等维度来自于店铺明细宽表;大中小分类来自于商品明细宽表;而成交额等指标需要依赖订单明细宽表。

字段抽取

关联之后,字段非常多,但是并不意味着每一个字段都是销售主题宽表统计需要的;

因此需要根据销售主题宽表的计算指标和维度,把相关的字段抽取出来

知识点11:DWS层搭建--销售主题宽表--step2--row_number去重(可选)

使用row_number分组去重的时候需要注意:

1、对于城市、商圈、店铺等维度的成交额计算,根据订单order_amount汇总求和即可;

2、而对于品牌、大类、中类、小类等维度成交额计算,需要根据goods_id计算。

知识点12:DWS层搭建--销售主题宽表--step3--grouping sets分组

  • 使用CTE表达式针对上面抽取字段、分组去重的结果进行引导

    with  temp as (
        select 抽取字段、row_number去重)   

    注意,到这一步为止,temp表的数据已经和之前的我们创建的简易模型、复杂模型差不多了。

    后面的技术主要就是case when+grouoing判断。

  • 根据业务需求进行维度组合,使用grouping sets进行分组。

知识点13:DWS层搭建--销售主题宽表--step4--维度字段判断

提示:可以根据待插入的目标表yp_dws.dws_sale_daycount的字段顺序,把结果返回。

--思考:还有什么方式可以精准的识别8个分组??
--注意:在使用grouping sets的时候 为了可以快速便捷的区分每条数据是根据谁进行的分组计算,
--可以有意识的在表中添加类似分组ID 或者分组type这样的字段
--使用 1 2 3 4 或者具体的字段类标识 数据属于哪一个分组的

知识点14:DWS层搭建--销售主题宽表--step5--销售收入统计

    --指标计算 注意每个指标都对应着8个分组维度的计算

--对于重复的数据 之前使用row_number标记之后 在sum求和之前 使用if进行判断  为1的保留

知识点15:DWS层搭建--销售主题宽表--step6--金额指标统计

知识点16:DWS层搭建--销售主题宽表--step7--订单量指标统计

知识点17:DWS层搭建--销售主题宽表--最终完整版sql实现

Day07_DWS层建设实战-2

注意:建表操作需要在hive中执行,presto不支持hive的建表语法。

知识点03:DWS层搭建--商品主题宽表--需求分析

你可能感兴趣的:(Python,java,开发语言)