15. 查询所有用户的连续登录两天及以上的日期区间

news2024/9/20 18:35:52

文章目录

        • 题目需求
        • 思路一
        • 实现一
        • 题目来源

题目需求

从登录明细表(user_login_detail)中查询出,所有用户的连续登录两天及以上的日期区间,以登录时间(login_ts)为准。

期望结果如下:

user_id (用户id)start_date (开始日期)end_date (结束日期)
1012021-09-272021-09-30
1022021-10-012021-10-02
1062021-10-042021-10-05
1072021-10-052021-10-06

需要用到的表:

登录明细表:user_login_detail

user_id(用户id)ip_address(ip地址)login_ts(登录时间)logout_ts(登出时间)
101180.149.130.1612021-09-21 08:00:002021-09-27 08:30:00
102120.245.11.22021-09-22 09:00:002021-09-27 09:30:00
10327.184.97.32021-09-23 10:00:002021-09-27 10:30:00

思路一

和第二题思路相同 2. 查询至少连续三天下单的用户

在这里插入图片描述

实现一

-- 4) 按照 user_id, sub_res 进行分组,对每组记录进行计数,选出>=2的user_id
select user_id,
       collect_list(login_ts_format)[0]                                       as start_date,
       collect_list(login_ts_format)[size(collect_list(login_ts_format)) - 1] as end_date
from (
         -- 3) 计算 create_date - row_num 得到 sub_res
         -- 2) 对 user_login_detail 中的每条记录编号。对 user_id 进行分组,组内按照 login_ts 升序排序,并对每条记录使用 row_number 进行编号 row_num
         select user_id,
                login_ts_format,
                date_add(login_ts_format, -row_number() over (partition by user_id order by login_ts_format)) as sub_res
         from (
                  -- 1) 对用户进行去重。原因:用户一天可能存在多次登录的情况,我们此处只需要一次即可
                  select distinct user_id,
                                  date_format(login_ts, 'yyyy-MM-dd') as login_ts_format
                  from user_login_detail
              ) t1
     ) t2
group by user_id, sub_res
having count(*) >= 2;

题目来源

http://practice.atguigu.cn/#/question/15/desc?qType=SQL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/714619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#与C++编程环境对比:优点与应用场景详解

C#与C是两种常用的编程语言,它们在编程环境方面有一些相同点和不同点。首先,它们都可以用于开发跨平台的应用程序。其次,它们都具有强大的面向对象编程能力。但是,它们在语法、性能和应用领域等方面存在一些不同点 。 在语法方面…

编织魔法:探索Python字符串的奇幻世界

文章目录 前言什么是 python 字符串通过下标(索引)来访问字符串中的字符字符串的切片操作字符串常用的方法find() 查找子串index() 查找子串rfind() / rindex()count() 返回某个子串在字符串中出现的次数replace() 替换split() 按照指定字符分割字符串join() 用一个字符或者子串…

Debian 12 静态IP / 固定IP的设置

环境:Debian 12 amd64-lxde 局域网:PT925E电信光猫 手机APP 网络管家 一般用动态IP就可以了,但如果软件环境比较小众,问题就随之而来。起始问题:路由器无法解析设备名和IP,网络管家也不让设置固定IP&…

炫酷水球图:让数据可视化更生动有趣

水球图是一种独特而引人注目的数据可视化形式,通过模拟水球的形状和大小来展示数据的分布和比例关系。它以其生动的表现形式和直观的视觉效果,吸引了越来越多的关注和应用。在数据可视化领域,水球图为我们提供了一种直观、易于理解的方式来展…

实施供应商管理时常见的挑战及解决方案

供应商管理在现代商业环境中是很重要的,是企业在采购活动中的重要组成部分。采购组织必须确保其供应商得到妥善管理,以维持成功的工作关系。然而,管理好供应商是一项艰巨且具有挑战性的任务。 以下是采购组织常面临的挑战以及有效的解决方案。…

SNMP 计算机网络管理 实验1(二) 练习与使用Wireshark抓取SNMP数据包抓包之 任务三分析并验证TCP三次握手建立连接时三次握手工作过程

⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu &am…

您应该设置 Kubernetes CPU 限制吗?

管理Pod 和容器可用的资源是 Kubernetes 管理的最佳实践步骤。您需要防止 Pod 贪婪地消耗集群的 CPU 和内存。一组 Pod 的过度使用可能会导致资源争用,从而减慢相邻容器的速度并破坏主机的稳定性。 但 Kubernetes 资源管理经常被误解。提供了两种机制来控制分配:请求和限制。…

打jar包

pom文件指定打包的类型是jar&#xff0c;并指定启动主类 <packaging>jar</packaging><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>…

django要在books接口中不同数据的新类

要在books接口中添加一个处理不同数据的新类&#xff0c;并希望通过 Django 管理后台添加和显示这些数据&#xff0c;需要对三个文件进行修改 1.在 models.py 文件中添加新的模型类。 例如&#xff0c;假设您要添加一个名为 Category 的新模型&#xff1a; from django.db i…

Mac菜单栏图标管理软件 Bartender 4

Bartender 4是一款用于管理 macOS 系统状态栏图标的软件。它允许你自定义状态栏图标的显示和排序&#xff0c;帮助你更好地组织和管理你在状态栏中使用的应用程序和工具。 通过 Bartender 4&#xff0c;你可以隐藏或显示状态栏图标&#xff0c;以避免状态栏过多的图标拥挤在一起…

dbeaver远程数据库连接管理工具使用,数据库拒绝访问,用python远程访问postgre数据库

dbeaver软件 安装postgresql sudo apt-get update sudo apt-get install postgresql postgresql-client 修改postgresql密码,创建数据库 psql -U postgres ALTER USER postgres WITH PASSWORD new_password; CREATE DATABASE DB_NAME; \q 允许数据库被远程访问 点insert,加…

解决VS2013 C#无法联网搜索NuGet程序包的问题

1问题描述 2 结果办法 先打开程序包管理控制台 在程序包控制台输入后按回车&#xff1a;[Net.ServicePointManager]::SecurityProtocol[Net.ServicePointManager]::SecurityProtocol-bOR [Net.SecurityProtocolType]::Tls12 完成

7.1.6 Linux 文件系统的运行

所有的数据都得要载入到内存后CPU才能够对该数据进行处理。为了解决耗时等待磁盘的写入/读取上的问题&#xff0c;Linux使用的方式是通过一个称为非同步处理&#xff08;asynchronously&#xff09; 的方式。所谓的非同步处理是这样的&#xff1a; 当系统载入一个文件到内存后…

SAP ABAP结构复用的两种数据结构

一、定义结构中嵌套一层结构&#xff1a; 断点内表看结构是这样的&#xff1a; 二、定义结构中字段都放平层&#xff0c;注意那个include关键字的颜色&#xff0c;要变蓝色&#xff1a; 断点看内表结构&#xff0c;对了&#xff0c;就是我们想要的一层&#xff1a;

Oracle 查询下载补丁集

想必许多朋友在打开oracle支持网站后有些懵不知道如何查询下载数据库的补丁。 登入 登入Oracle support网站&#xff1a; https://support.oracle.com/portal/ 查询文档编号&#xff1a;2118136.2 选择需要的补丁编号&#xff1a; 选择对应的版本&#xff1a; 提前阅读…

java项目之疫情期间医院门诊管理系统ssm源码+文档

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的疫情期间医院门诊管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…

java fastdfs实现文件(图片)的上传下载

1、首先引入依赖、目录结构&#xff1a; <!--fastdfs--> <dependency><groupId>com.github.tobato</groupId><artifactId>fastdfs-client</artifactId><version>1.26.5</version> </dependency>2、在application.yml中…

redis与分布式

主从复制 概念 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(Master)&#xff0c;后者称为从节点(Slave)&#xff0c;数据的复制是单向的&#xff0c;只能由主节点到从节点。Master以写为主&#xff0c;Slave 以读为…

kong-dashboard安装

简介 kong-dashboard提供了UI界面操作和查看kong&#xff0c;可以进行api、consumers、plugins操作 官网&#xff1a;https://hub.docker.com/r/pgbi/kong-dashboard/ 安装 联网安装 [slviewDEMO:~]$ docker search kong-dashboard INDEX NAME …

终端安全管理系统(软件)能干什么?

随着企业网络化的进程&#xff0c;大多数企业已经开始通过终端安全管理系统来改善企业的网络环境&#xff0c;管控员工的上网行为&#xff0c;但同时还有很多企业不了解其具体的用处&#xff0c;那终端安全管理系统究竟可以干什么呢&#xff1f; 一、加密重要文档&#xff0c;保…