超详细解析:用sql查找连续登陆7天或者登陆天数最多的用户id
# 方法一:查询连续登陆7天的用户id和登陆天数
-- 第一步:用户登录日期去重
select distinct date(date) as 日期,id from tb_user;
-- 第二步:用row_number()计数
select *,row_number() over(PARTITION by id order by 日期) as cum from (select DISTINCT date(date) as 日期,id from tb_user)a;
-- 第三步:日期减去计数值得到结果
select *,date(日期)-cum as 结果 from (select *,row_number() over(PARTITION by id order by 日期) as cum from (select DISTINCT date(date) as 日期,id from tb_user)a)b;
-- 第四步:根据id和结果分组并计算总和,大于等于7的即为连续登录7天的用户
select id,count(*) from (select *,date(日期)-cum as 结果 from (select *,row_number() over(PARTITION by id order by 日期) as cum from (select DISTINCT date(date) as 日期,id from tb_user)a)b)c GROUP BY id,结果 having count(*)>=7;
select * from tb_user;# 方法二:登陆天数最多
select id,count(date2) as 连续天数
from (select *,date_sub(date1,interval r day) date2from(select distinct id,date(date) date1,dense_rank()over(partition by id ORDER BY date(date)) as rfrom tb_user) v ) w
group by id,date2
order by 连续天数 desc
limit 1;# 方法三:登陆天数最多
select id,max(h) '登录天数'from(
select id ,count(e) h from (
select *,a-b as e from (
select *,row_number() over(order by id) b from(
select *,date_format(date,'%Y%m%d') a from (
select distinct id,date(date) date from tb_user order by id,date(date)) as c)as d) as f)as g
group by e,id)as i group by id order by max(h) desc LIMIT 1;# 方法四:登陆天数最多
select d.id,max(e)
from
(select id,a,count(id) as e from
(select distinct id,day(date) as c,row_number() over(partition by id order by date) a
from tb_user
group by id,day(date)) b
where c = a
group by id
order by id) d;# 方法五:登陆天数最多
select id,max(sort1) as 最多登录天数
from(
select *,
dense_rank()over(partition by id,datesub order by id,date) as sort1
from
(select *,
date_sub(date,interval sort day) as datesub
from
(select id,date(date) date,
dense_rank()over(partition by id order by id,date(date)) as sort
from tb_user) a # 按id,date 不跳越排序
) b #计算 date - sort 日期差
) c; #再次排序 按id和 日期差# 方法六:登陆天数最多
SELECT id,count(date-t2) `连续登录天数`
from(SELECT DISTINCT date(date) date,id,row_number()over(PARTITION by id)t2 from tb_user GROUP BY id,date(date)) a
group by id,date-t2
order by `连续登录天数` desc
limit 1;
超详细解析:用sql查找连续登陆7天或者登陆天数最多的用户id相关推荐
- Android技能树 — 网络小结(6)之 OkHttp超超超超超超超详细解析
前言: 本文也做了一次标题党,哈哈,其实写的还是很水,各位原谅我O(∩_∩)O. 介于自己的网络方面知识烂的一塌糊涂,所以准备写相关网络的文章,但是考虑全部写在一篇太长了,所以分开写,希望大家能仔细看 ...
- 单片机数字钟(调时,调时闪烁,万年历,年月日)超详细解析
2019/07/13 单片机数字钟(调时,调时闪烁,万年历,年月日)超详细解析 发表日期:2019/07/13 单片机开发板:巫妖王2.0, 使用同款开发板可直接上板测试 文档说明: 实现功能 : 一 ...
- 计算机网络之交换机的工作原理---超详细解析,谁都看得懂!!
在了解交换机的工作原理之前,我们先要了解几个概念. 一.相关概念 1.OSI七层模型是哪七层? 自上而下分别是: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 交换机工作在数据链路层, ...
- Apollo Control——超详细入门教程(二):连续状态空间方程离散化与离散LQR公式推导
专栏文章列表 Apollo Control--超详细入门教程(一):基于道路误差的车辆动力学模型 Apollo Control--超详细入门教程(二):连续状态空间方程离散化与离散LQR公式推导 Ap ...
- 超详细解析:使用SQL语句查询连续登陆7天的用户信息
假设有如下表tb_user,现输出连续登陆7天的用户id 方法一思路: 1.因为每天用户登录次数可能不止一次,所以需要先将用户每天的登录日期去重. 2.再用row_number() over(part ...
- 两万字深度讲解系统设计!超详细解析!面试复习必备!
Table of Contents generated with DocToc 三高 高并发 高性能 高可用 网站统计IP PV UV实现原理 如何进行系统拆分? 场景题:设计判断论文抄袭的系统 设计 ...
- 关于主从复制的超详细解析(全)
目录 前言 1. 主从复制 1.1 方式 2. Mysql的主从复制 2.1 一主一从 2.1.1 window和linux通讯 2.1.2 linux和linux的通讯 2.2 双主双从 3. Re ...
- 【智能算法】粒子群算法(Particle Swarm Optimization)超详细解析+入门代码实例讲解...
喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 算法起源 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由E ...
- 超全超详细,常见SQL 面试知识点汇总
SQL是用于数据分析和数据处理的最重要的编程语言之一, 因此与数据科学相关的工作(例如数据分析师.数据科学家和数据工程师)在面试时总会问到关于 SQL 的问题. SQL面试问题旨在评估应聘者的技术和解 ...
最新文章
- python随机生成字符串_python生成随机数、随机字符串
- NSString与NSData互转
- I2C驱动程序框架probe道路
- 笔刷怎么做_原来是这样:用PS笔刷做出颜料肌理效果!
- 使用spring jdbc的batchUpdate功能提高性能
- python设置tk退出_退出tkinter gui
- 软件开发作为一种价值领域的研究
- c语言硬件信息监控,zabbix通过ipmi传感器监控浪潮服务器的硬件信息
- “一学就会”微服务的架构模式
- 20060516: 实现圆角div效果
- lisp一键室内标注_LISP-标注的自动位置调整
- PHP下ajax跨域的解决方案之window.name
- SSH面试常被问到的问题
- 单元测试系列一-为什么要写单元测试,何时写,写多细
- 互联网+O2O 的商业模式
- 找不到项目 该项不在计算机中,Win7删除文件夹找不到该项目怎么删除?“找不到该项目”强删方法...
- enscape3.1完美中文版
- 学习 Python 之 Pygame 开发魂斗罗(二)
- 2.3、JavaScript 数据类型 - 数字类型
- 简单python数据分析项目实例-入门Python数据分析最好的实战项目(一)
热门文章
- python scipy库总结
- iPhone手机iOS15降iOS14系统教程
- 计算机毕业设计(附源码)python智能仓储设备管理系统
- 字节跳动欢迎你的加入
- Ubuntu 13.04中源码方式安装MySQL 5.5.33
- 基于转子磁链定向的异步电机矢量控制仿真(一)
- matlab mha,ITK 实现多张图像转成单个nii.gz或mha文件案例
- windows10/11自带的重装方法
- Mybatis快速配置-不适合入门
- 【实用的开源项目】使用云服务器部署TaleBook,简洁、强大的私人书籍管理系统!