把星期一改为星期六?

lf5gs5x2  于 2021-06-29  发布在  Hive
关注(0)|答案(2)|浏览(405)

我正在尝试使用hive按周统计数据中的访客,但我的一周是从周日开始,而不是从周一开始。像这样的东西会有用,但它给了我太阳

SELECT 
Month(timestamp), Weekofyear(timestamp), COUNT (DISTINCT userid) 
FROM Data 
Group By Month, Week

有没有一种方法可以改变时间戳的工作位置?这似乎与我的数字不太一致,我用硬编码的日期来做。

SELECT 
Month(timestamp), Weekofyear(SUB_DAY(timestamp,1)), COUNT (DISTINCT userid) 
FROM Data 
Group By Month, Week
mklgxw1f

mklgxw1f1#

suyash soni在其他地方回答:
简单的解决方案
您可以简单地创建自己的公式,而不必使用“一年中的一周”的预定义函数优势:您可以在一周内使用任何一组7天。
在你的情况下,既然你希望一周从星期天开始,我们只需要一年中星期天的第一个日期
例如,2016年的第一个星期天是2016年1月3日,即2016年1月16日的第3个星期天——假设时间戳列的格式为“yyyy-mm-dd”

SELECT
count(distinct UserId), lower(datediff(timestamp,'2016-01-03') / 7) + 1 as week_of_the_year 
FROM table.data 
where timestamp>='2016-01-03'
group by lower(datediff(timestamp,'2016-01-03') / 7) + 1;
gr8qqesn

gr8qqesn2#

从星期天开始,请输入以下代码

SELECT 
Month(timestamp), Week(timestamp), COUNT (DISTINCT userid) 
FROM Data 
Group By Month, Week

从星期一开始把这个

SELECT 
Month(timestamp), Week(timestamp,1), COUNT (DISTINCT userid) 
FROM Data 
Group By Month, Week

相关问题