业务背景:
公司目前在做的零售业务,需要统计每天每个小时段的GMV,在进行报表展示的时候就需要将使用小时段做为维度,也就是横坐标来展示,但是在夜里的几个时段通常是没有下单数据的这就会导致展示BI报表时候缺少夜里几个时段的展示,所以需要对数据进行补齐
想要的展示效果:
补充数据前展示:
使用arrayjoin对小时段数据补全:
select
tenant_id,
shop_id,
arrayJoin(hour) as hour
from
(select
tenant_id,
shop_id,
[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] as hour
from order)t1
第一步:
子查询对数据中每一行数据都增加0-23小时段的数组字段
[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] as hour
效果:
第二步:
使用arrayJoin函数对数组中的数据分割开来,相当于hive中的炸裂作用
arrayJoin(hour) as hour
效果:
参考资料:
arrayjoin介绍:clickhouse--ArrayJoin介绍