让决策更智能
新一代智能数据分析平台

如何自定义周

观小智发表于:2020年09月09日 17:21:39更新于:2020年09月09日 20:10:04

需求背景:

有时候常规周(周一到周日)不能满足我们的业务场景,需要自定义周来实现。

例如:如何实现周四到周三为一周?


实现方法:

1,首先了解一下获取星期几的函数dayofweek([日期])与获取第几周的函数weekofyear([日期]),spark当中星期是从星期日到星期六为一个周,也就是1到7(如下图所示),想得到常规星期需要dayofweek([日期])-1。

image.png

2,实现周四到周三为一周,那么每周的四五六日都应该推迟到下个周当中。

具体写法:

case when dayofweek([日期]) in (1,5,6,7) 

then WEEKOFYEAR([日期])+1 

else WEEKOFYEAR([日期]) 

end

image.png


结果:

image.png

可以看出按照标准星期(周一至周日也就是1至0),已经实现从周四到周三为一周。




    您需要登录后才可以回复