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

在数据分析的过程中,想要从数据中洞察机会,一般就需要对数据不断展开下钻,分不同维度查看核心的数据漏斗。比如不同年龄段、不同城市、不同购买力、不同性别、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。

文档

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容