美文网首页
如何分维度查看某一指标?

如何分维度查看某一指标?

作者: Real_man | 来源:发表于2021-11-13 22:09 被阅读0次

    在数据分析的过程中,想要从数据中洞察机会,一般就需要对数据不断展开下钻,分不同维度查看核心的数据漏斗。比如不同年龄段、不同城市、不同购买力、不同性别、XXX的浏览转化率。

    作为技术人员,肯定不能停留在知道怎么分析上,还需要知道要怎么高效简单的做这件事情。怎么做呢?

    • 简单的方式是SQL的Group By + UNIAON ALL
    • 高级一点的方式是Grouping SETS

    当维度足够多的时候使用Grouping SETS,可以减少重复代码的编写;

    Demo

    准备1+N张表:

    • table_a 1张业务数据表,userid + 业务数据
    • table_b N张用户维表,可以放到一张大宽表中,也可以按需分布在不同的表中。存储用户的年龄、性别、城市等信息

    userid 浏览数 购买数
    1 1 0
    2 1 0
    3 1 0
    4 1 1

    Group By + UNION ALL方式

    CREATE VIEW tmp_result AS 
    select 
    a.userid
    ,a.浏览数
    ,a.购买数
    ,b.年龄
    ,b.性别
    ,b.购买力
    from table_a
    LEFT JOIN table_b
    on a.userid = b.userid
    
    SELECT 年龄 as cate,sum(浏览数),sum(购买数) from tmp_result GROUP BY 年龄
    UNION ALL
    SELECT 性别 as cate,sum(浏览数),sum(购买数) from tmp_result GROUP BY 性别
    UNION ALL
    SELECT 城市 as cate,sum(浏览数),sum(购买数) from tmp_result GROUP BY 城市
    

    GROUPING SETS方式

    CREATE VIEW tmp_result AS 
    select 
    a.userid
    ,a.浏览数
    ,a.购买数
    ,b.年龄
    ,b.性别
    ,b.购买力
    from table_a
    LEFT JOIN table_b
    on a.userid = b.userid
    
    SELECT 年龄,性别,城市,sum(浏览数),sum(购买数) FROM tmp_result
    GROUP BY 年龄,性别,城市
    GROUPING SETS(
        (年龄),(性别),(城市)
    )
    

    小结

    分维度查看不同和数据就是SQL的Group BY,当维度太多的时候使用Grouping Sets。

    文档

    相关文章

      网友评论

          本文标题:如何分维度查看某一指标?

          本文链接:https://www.haomeiwen.com/subject/taazzltx.html