首页 > 数据库 >sql面试题 - 求出连续登录7天的用户/用户数

sql面试题 - 求出连续登录7天的用户/用户数

时间:2023-07-20 19:33:56浏览次数:35  
标签:面试题 rank select sql date id 用户数 user

连续性问题,如:

  1. 求出连续登录7天的用户/用户数
  2. 求出连续充电次数大于等于12次的用户数
  3. 求出3年获得冠军的选手
  4. ......
    通用的解法:
  1. 数据去重处理。如求连续7天登录的用户数,则一个用户一天只保留一条数据
  2. 开窗函数。找到分区主键,然后按照时间进行排序求得rank
  3. 用时间-rank,得到一列时间参考列,根据时间参考列进行聚合,即可。

问题:
求出连续登录7天的用户/用户数

拆解:

select count(distinct user_id) as 用户数
from (
	select user_id, date, data_sub(date, rank ) as date_parm 
	from (
		select * , row_number() over (partition by user_id order by date )  as rank 
		from (
			select distinct user_id, date from input
			) 
		)
	)
where date_parm >= 7

标签:面试题,rank,select,sql,date,id,用户数,user
From: https://www.cnblogs.com/tian1022/p/17569450.html

相关文章

  • MySQL之sql性能分析
    MySQL之sql性能分析sql性能分析慢查询日志慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有SQL语句的日志MySOL的慢查询日志默认没有开启,需要在MvSOL的配置文件(/etc/my.cnf)中配置如下信息:#查询slow_query_log开启了没有showvariables......
  • No qualifying bean of type 'cn.iocoder.yudao.module.personnel.dal.mysql.cust
    解决"Noqualifyingbeanoftype'cn.iocoder.yudao.module.personnel.dal.mysql.cust"问题的流程为了解决"Noqualifyingbeanoftype'cn.iocoder.yudao.module.personnel.dal.mysql.cust"的问题,我们可以按照以下步骤进行操作:步骤操作1确认问题来源2检查bean的......
  • No package mysql-server available.
    如何解决“Nopackagemysql-serveravailable”错误概述在使用Linux系统进行开发时,有时我们需要安装一些软件包来满足项目的需求。然而,当我们尝试安装某个软件包时,有时会遇到“Nopackagexxxavailable”的错误提示。这种错误通常是由于软件仓库中没有该软件包或者仓库配置有......
  • Xenon mysql
    如何实现"Xenonmysql"作为一名经验丰富的开发者,我将指导你如何实现"Xenonmysql"。首先,让我们来整理一下实现这个过程的步骤。实现步骤步骤描述1安装Xenonmysql2创建数据库3连接到数据库4执行SQL操作5关闭数据库连接详细步骤和代码示例1.安装......
  • Wireshark mysql
    实现“WiresharkMySQL”教程1.流程概述在实现“WiresharkMySQL”之前,我们需要了解整个流程。下表展示了实现“WiresharkMySQL”的步骤:步骤描述步骤1安装Wireshark步骤2设置捕获过滤器步骤3捕获MySQL数据包步骤4分析捕获的数据包下面将逐步......
  • UnKnowhost mysql
    解决"Unknownhostmysql"的步骤在解决"Unknownhostmysql"的问题之前,我们首先要了解这个错误的含义。当我们在连接MySQL数据库时,如果遇到"Unknownhostmysql"错误,意味着我们的程序无法找到MySQL数据库的主机。此错误通常是由以下几种原因引起的:数据库主机名错误:可......
  • Ubuntu启动MySQL服务
    Ubuntu启动MySQL服务教程概述在Ubuntu操作系统中启动MySQL服务可以使用以下步骤。在本教程中,我将向你展示如何通过命令行方式启动MySQL服务。步骤概览步骤命令说明1sudoservicemysqlstart启动MySQL服务2sudosystemctlstartmysql.service启动MySQL服务(对......
  • 北银金科面试题
    line-height带不带单位有什么区别?line-height的基本概念1、行高是指文本行基线baseline之间的垂直距离2、行距是上一行的底线和下一行的顶线之间的距离。3、字体大小是同一行的顶线和底线之间的距离。当单位为px这个应该是很多伙伴经常用的,当line-height和height一样时候,......
  • SQL占用yarn资源监控
    1.背景    接上次自定义Hivehook后,此次主要是把下半段yan资源使用情况统计功能实现,从而实现对SQL占用情况统计,达到提取出慢SQL,高耗资源的SQL。2.实施    上次实现了提交的任务ID和Application_id的关联,这次主要每隔2分钟执行一次应用资源占用情况。 具体实现代码,可......
  • MySQL锁机制与解决死锁问题
    引言:在数据库中,锁是一种重要的机制,用于控制并发访问数据,保证数据的一致性和完整性。MySQL作为一种常用的关系型数据库,也提供了丰富的锁机制来处理多个用户同时访问数据库时可能出现的并发问题。本篇博客将介绍MySQL的锁机制,包括如何添加锁以及解决可能出现的死锁问题。1.介绍MySQ......