首页 > 数据库 >hivesql练习_间断连续登录用户问题

hivesql练习_间断连续登录用户问题

时间:2023-04-02 16:55:47浏览次数:36  
标签:登录 hivesql 间断 user max date login id

现有各用户的登录记录表(login_events)如下,表中每行数据表达的信息是一个用户何时登录了平台。

user_idlogin_datetime
100 2021-12-01 19:00:00
100 2021-12-01 19:30:00
100 2021-12-02 21:01:00

现要求统计各用户最长的连续登录天数,间断一天也算作连续,例如:一个用户在1,3,5,6登录,则视为连续6天登录。期望结果如下:

user_id
<int>
(用户id)
max_day_count
<int>
(最大连续天数)
100 3
101 6
102 3
104 3
105 1

解答:

 1 with tt as(
 2     select user_id, login_date, lag(login_date, 1, login_date) over(partition by user_id order by login_date) last_login_date -- 上一次登录的日期
 3   from
 4   (
 5     select user_id, date_format(login_datetime, 'yyyy-MM-dd') login_date -- 格式化时间格式
 6     from login_events
 7     group by user_id, date_format(login_datetime, 'yyyy-MM-dd')
 8   ) t1
 9 ),
10 tt1 as(
11 select user_id, 
12 if(datediff(login_date, last_login_date) < 3, 
13    max(login_date) over(partition by user_id order by login_date), 
14    'null') max_login_date, -- 截至到当前时间满足连续登录的最大的登录日期
15 if(datediff(login_date, last_login_date) < 3, 
16    min(login_date) over(partition by user_id order by login_date), 
17    'null') min_login_date -- 截至到当前时间满足连续登录的最小的登录日期
18 from tt
19 )
20 select user_id, max(datediff(max_login_date, min_login_date) + 1) max_day_count
21 from tt1
22 group by user_id

 

标签:登录,hivesql,间断,user,max,date,login,id
From: https://www.cnblogs.com/nananana/p/17280763.html

相关文章

  • 微信小程序登录、获取用户信息的流程及实现
    微信小程序登录、获取用户信息的流程及实现本篇文章将通过以下三步,让你了解到小程序登录、和用户信息获取的微信生态变迁,和流程上前后端技术实现。小程序登录流程小程序获取手机号小程序获取头像昵称小程序登录小程序登录是通过微信官方提供的登录能力,获取微信提供的用......
  • GitHub OAuth 第三方登录示例
     ⇐  ⇒GitHubOAuth第三方登录示例教程作者:阮一峰日期:2019年4月21日这组OAuth系列教程,第一篇介绍了基本概念,第二篇介绍了获取令牌的四种方式,今天演示一个实例,如何通过OAuth获取API数据。很多网站登录时,允许使用第三方网站的身份,这称为"第三......
  • Teamcenter_SOA开发:使用SOA登录Teamcenter
    本文TeamcenterSOA使用C++参考SOA的例子进行编写,以下代码为登录Teamcenter,代码工程在Teamcenter四层环境下运行。SOA的库文件、样例文件、帮助文件在Teamcenter的安装包中可以找到。  运行以下bat文件打开vs后再打开工程,不然调试运行会报错:1cd/d%~dp02setUGII_......
  • 用飞书账号登录web应用、Linux服务器
    某初创型的科技公司拥有5、6个web应用,采用飞书作为移动办公沟通协作工具。为提高办公效率及运维效率,公司想用飞书账号作为身份源,登录web应用及Linux服务器。视该公司部署方式而定(本地化部署还是采用SaaS服务),宁盾有对应的产品及解决方案:宁盾目录服务或云身份目录平台。解决思路是:将......
  • 登录页面
        ......
  • Flask框架 之Flask-login用户登录
    文档:https://flask-login.readthedocs.io/en/latest/安装:pipinstallflask-login一、效果图  二、示例代码fromflaskimportFlask,render_template,url_for,redirect,flashfromflask_loginimportLoginManager,login_required,UserMixin,login_user,lo......
  • 表单登录回显
    表单登录回显页面login.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>登录</title></head><body><h3>登录</h3><formaction="login.do"m......
  • 【AGC】集成AGC认证服务facebook登录报错问题
    ​【关键字】认证服务、facebook、AGC 【问题描述】开发者反馈应用集成了AGC认证服务的facebook登录功能,在登录时遇到了一些问题。提示SERVER_ERROR:[code]1675030[message]:执行查询时出错,具体如下所述:开发接入集成认证服务中的fb登陆,目前我们有自己的google包,接入了f......
  • django admin 设置用户登录时效 cookie和session
    #在settings文件中添加以下配置SESSION_SAVE_EVERY_REQUEST=TrueSESSION_COOKIE_AGE=60*30#30分钟。SESSION_EXPIRE_AT_BROWSER_CLOSE=False会话cookie可以在用户浏览器中保持有效期。True:关闭浏览器,则Cookie失效。 ......
  • django admin 自动选择登录用户
    Django为我们提供了一个很好的管理界面。但是当我们只使用默认值时,用户需要自己选择他们是谁。我们想为他们自动选择,他们不能假装是其他人。classNotesAdmin(admin.Mode......