gpt4 book ai didi

date - 在 Hive 中按周计数

转载 作者:可可西里 更新时间:2023-11-01 16:44:03 25 4
gpt4 key购买 nike

我试图每周生成一组完全刷新的数字,从 hive 中的表中提取。现在我使用这种方法:

SELECT
COUNT(DISTINCT case when timestamp between TO_DATE("2016-01-28") and TO_DATE("2016-01-30") then userid end) as week_1,
COUNT(DISTINCT case when timestamp between TO_DATE("2016-01-28") and TO_DATE("2016-02-06") then userid end) as week_2
FROM Data;

我正在尝试获得更多信息:

选择月(时间戳)、周(时间戳)、COUNT(不同的用户 ID)来自数据按月、周分组

但我的一周是从周日到周六。有没有更聪明的方法可以在 HIVE 中执行此操作?

找到的解决方案:

您可以简单地创建自己的公式,而不是使用“一年中的一周”的预定义函数优势:您将能够采取任何一组 7 天的一周。

在你的情况下,因为你希望一周应该从星期日到星期六开始,我们只需要一年中星期日的第一个日期

例如 - 在 2016 年,第一个星期日在“2016-01-03”,即 2016 年 1 月 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;

最佳答案

我看到您需要按周对数据进行分组。你可以这样做:

SELECT weekofyear(to_date(timestamp)), COUNT (DISTINCT userid) FROM Data Group By weekofyear(to_date(timestamp))

关于date - 在 Hive 中按周计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38061177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com