clickhouse中使用arrayjoin进行数据补全

业务背景:

      公司目前在做的零售业务,需要统计每天每个小时段的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介绍

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值