当前位置: 首页 > news >正文

如何制作私人网站专业的建站

如何制作私人网站,专业的建站,天元建设集团有限公司张桂玉丑闻,电商网站建设费用1.背景 统计连续登录天数超过3天的用户,输出信息包括:用户id,登录天数,起始时间,结束时间; 2.准备数据 -- 建表 create table if not exists user_login_3days(user_id STRING,login_date date );--插入…

1.背景

统计连续登录天数超过3天的用户,输出信息包括:用户id,登录天数,起始时间,结束时间;

2.准备数据

-- 建表
create table if not exists user_login_3days(user_id STRING,login_date date
);--插入数据
insert into user_login_3days values ('01','2023-08-02');
insert into user_login_3days values ('01','2023-08-03');
insert into user_login_3days values ('01','2023-08-04');
insert into user_login_3days values ('01','2023-11-02');
insert into user_login_3days values ('01','2023-12-09');
insert into user_login_3days values ('02','2023-01-01');
insert into user_login_3days values ('02','2023-04-23');
insert into user_login_3days values ('03','2023-09-10');
insert into user_login_3days values ('03','2023-09-11');
insert into user_login_3days values ('03','2023-09-12');
insert into user_login_3days values ('04','2023-04-23');
insert into user_login_3days values ('04','2023-04-24');
insert into user_login_3days values ('05','2023-09-11');
insert into user_login_3days values ('06','2023-09-12');-- 查询数据数据
select * from user_login_3days order by user_id;

在这里插入图片描述

3.解决思路以及实现

思路1:row_number()

  • 1.通过对用户id进行开窗函数row_number,对登陆时间进行降序排列
  • 2.使用date_sub(login_date,rn)函数进行日期求出差值日期
  • 3.对user_id和diff_date分组求出时间的区间范围
  • 4.对结果进行过滤操作
SELECTt2.user_id,count(1)           as login_times,min(t2.login_date) as start_date,max(t2.login_date) as end_date
FROM
(SELECTt1.user_id,t1.login_date,date_sub(t1.login_date,rn) as diff_dateFROM(SELECTuser_id,login_date,row_number() over(partition by user_id order by login_date asc) as rnFROM user_login_3days) t1
) t2
group by t2.user_id, t2.diff_date
having login_times >= 3;

思路2:lag()/lead()

  • 1.通过对用户id进行开窗函数lag/lead,求出前面第二个的日期与当前的日期差以及后面一个日期与当前日期的差值
  • 2.对结果进行过滤操作
SELECTuser_id,lag_login_date,login_date
FROM(SELECTuser_id,login_date,lag(login_date,2,login_date) over(partition by user_id order by login_date) as lag_login_date,lead(login_date,1,login_date) over(partition by user_id order by login_date) as lead_login_dateFROM user_login_3days) t1
where datediff(login_date,lag_login_date) =2

4.总结

连续登陆问题解决的关键在于:如何判断连续?
通过对user_id分组排序后,使用登陆日期减去序号rn。如果连续,则得到的这个日期会相同。

http://www.yayakq.cn/news/573640/

相关文章:

  • 丽水哪里做网站鞍山做网站优化
  • 网站seo查询网站开发 工作量
  • 大连科技官方网站黄岩网站建设
  • 建设网站群的好处南阳网站关键词
  • 月坛网站建设公司已将绑定域名给另一个网站
  • 网站的做自己电脑做网站 外网无法访问
  • 厦门建网站网址外贸网站图片素材
  • 网站SEO容易做吗成都百度seo优化公司
  • 装修网站php源码找代做海报的网站
  • 100款不良网站进入窗口软件wordpress 管理权限
  • 长沙网站排名分析宁波网站优化体验
  • 网站开发进入腾信职位wordpress 网站加载过慢
  • 网站后台管理界面模板好看的页面
  • 网站开发公司应该具备怎样的资质在百度网上做广告需要多少钱
  • 海门市规划建设局网站做新网站的swot分析
  • 外贸自己做网站商品标题关键词优化
  • 表白墙网站怎么做刚做的网站 为啥搜不到
  • 做网站有什么软件wordpress 配置域名
  • 北京网站建设比较好的公司宝应网站开发
  • thinkphp做企业网站一级造价工程师报名时间
  • wordpress下载慢合肥网络推广优化公司
  • 网站保定网站建设多少钱大连哪家做网站比较好
  • 事业单位网站建设重庆建站模板厂家
  • 做seo要明白网站内容网站排版代码
  • 陕西天工建设有限公司官方网站大姚网站建设
  • 遂宁商城网站建设报价网站建设绿茶
  • 网站添加子域名网站建设申请计划
  • 呼伦贝尔网站建设呼伦贝尔wordpress 插件 h5
  • 苏州高端网站建设咨询wordpress登录后才能下载
  • 企业网站建设与推广范文html做的网站怎么弄