用HiveSQL计算连续天数问题的方法是什么


这期内容当中小编将会给大家带来有关用HiveSQL计算连续天数问题的方法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在日常工作中,可能经常会接到业务方类似这样的需求:统计今年每个用户最长连续签到的天数;统计最近一个月连续有回帖超过5天的话题;统计本季度中连续3天以上单日销量超过100的商品。这种“连续天数”问题看似简单,但实际上对思维能力和编写复杂SQL语句的能力要求比较高。下面以我们曾经接到的一个需求为例,提出解决办法。现要找出4月间,每个用户类型为24的记录项。如果有用户连续一周及以上记录该项,说明TA对某方面特别重视,应当重点运营。编写SQL的思路如下。为了避免过多嵌套,所有步骤中都先用子表表示,最后再 香港云主机合成完成的语句。1. 以用户ID分组,以记录日期为排序规则,添加一列排名。由于用户每天可以记录不止一次,所以要采用dense_rank()函数,不能用rank()或row_number()。2. 在以上添加了排名的表中,用记录日期减去排名列代表的天数,得到另一个日期。该日期实际上就是一个连续日期序列的第一天日期减去一天(读起来有点拗口,但很容易理解),用它来做标记。3.以上表中的user_id和start_point为分组依据,计算每个连续日期序列的天数值。因为数据量不大,所以这里直接用了distinct。数据量大的话还是应该采用group by来代替distinct。4. 最后就可以筛选出天数值最大值>=7的那些记录了。将上面的4个步骤合起来,就是如下的完整SQL语句了:上述就是小编为大家分享的用HiveSQL计算连续天数问题的方法是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注开发云行业资讯频道。

相关推荐: 怎么用Java计算中位数、方差、标准差、众数

本篇内容主要讲解“怎么用Java计算中位 香港云主机数、方差、标准差、众数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Java计算中位数、方差、标准差、众数”吧!Java计算中位数、方差、标准差、众数到此,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/14 17:18
下一篇 08/14 17:18

相关推荐