mysql-sql-练习题-4-标记

ops/2024/10/9 13:57:23/

标记

  • 连续登录2-7天用户
    • 建表
    • 排名找规律
  • 最大连胜次数
    • 建表
    • 只输出连胜结果
    • 输出所有连续结果

连续登录2-7天用户

在这里插入图片描述

建表

sql">create table continuous_login(user_id1 integer comment '用户id',date_login date comment '登陆日期'
) comment '用户登录表';insert into continuous_login
values(1,'2022-01-10'),(1,'2022-01-11'),(1,'2022-01-13'),(1,'2022-01-14'),(1,'2022-01-15'),(1,'2022-01-16'),(1,'2022-01-17'),(1,'2022-01-18'),(1,'2022-01-19'),(2,'2022-01-05'),(2,'2022-01-06'),(2,'2022-01-07'),(2,'2022-01-11'),(3,'2022-01-01'),(3,'2022-01-03'),(3,'2022-01-11');

排名找规律

sql">with tmp as(-- 过滤 保证无重复日期select *from continuous_logingroup by user_id1,date_login
),tmp1 as(-- 日期排名 等差数列select*,dense_rank() over(partition by user_id1 order by date_login) drfrom continuous_login ),tmp2 as(-- 等差 - 等差 =  差一样selectuser_id1,count(1) days_login_consecutive, -- 连续登录天数concat(min(date_login),'/',max(date_login)) date_finish_begin -- 拼接 连续登录起止日期from tmp1group by user_id1, adddate(date_login,-dr) -- 连续登录日期 等差数列having count(1) between 2 and 7 -- 连续登录所有情况中过滤出连续登录2-7天)
select -- 输出格式user_id1,group_concat(days_login_consecutive) days_login_consecutive,group_concat(date_finish_begin) date_finish_begin
from tmp2
group by user_id1;

在这里插入图片描述

最大连胜次数

在这里插入图片描述

建表

sql">create table if not exists match1(player_id integer unsigned not null default 0 comment '玩家ID',match_day date default '1970-01-01' comment '比赛日期',result1 varchar(5) comment '比赛结果'
) comment '玩家比赛表';insert into match1
value('1','2022-01-17','Win'),('1','2022-01-18','Win'),('1','2022-01-25','Win'),('1','2022-01-31','Draw'),('1','2022-02-08','Win'),('2','2022-02-06','lose'),('2','2022-02-08','lose'),('3','2022-03-30','Win');

只输出连胜结果

sql">with tmp as(-- 日期多次排名 找规律selectplayer_id,match_day,result1,if(result1 = 'Win',1,0) result1_if, -- if标记 为了计数dense_rank() over(partition by player_id order by match_day) dr,dense_rank() over(partition by player_id,result1 order by match_day) dr1from match1
),tmp1 as(-- 连续同种结果 差一样selectplayer_id,sum(result1_if) consecutive_countfrom tmpgroup by player_id,dr - dr1)
select -- 输出格式player_id,'Win' result1, -- 比赛结果max(consecutive_count) max_consecutive_count -- 最大连胜次数
from tmp1
group by player_id;

在这里插入图片描述

输出所有连续结果

sql">with tmp as(-- 日期多次排名 找规律selectplayer_id,match_day,result1,dense_rank() over(partition by player_id order by match_day) dr,dense_rank() over(partition by player_id,result1 order by match_day) dr1from match1
)
select -- 连续同种结果 差一样player_id,any_value(result1) result1, -- 比赛结果count(result1) consecutive_count -- 同种结果 连续次数
from tmp
group by player_id,dr - dr1;

在这里插入图片描述


http://www.ppmy.cn/ops/24348.html

相关文章

二、VLAN原理和配置

vlan不是协议,是一个技术,虚拟局域网技术,基于802.1q协议。 vlan(虚拟局域网),将一个物理的局域网在逻辑上划分成多个广播域的技术。 目录 1.冲突域和广播域 概念 范围 2.以太网帧格式 3.以太网帧封装…

kubernetes 之 一键安装prometheus

kubernetes上安装prometheus prometheus官网: https://github.com/prometheus-operator/kube-prometheus 按照官网下载对应版本 相对稳定一些 这里我们k8s 是1.28 版本的 相对应的下载 0.13 版本 rootmaster2:~# git clone https://github.com/prometheus-operato…

淘宝/天猫按图搜索淘宝商品(拍立淘) API,按图搜索商品详情

淘宝/天猫的“按图搜索商品”功能,通常被称为“拍立淘”,允许用户通过上传图片来搜索相似的商品。这项服务背后是由淘宝提供的API支持,使得用户能够快速找到与上传图片相匹配或类似的商品。以下是关于“按图搜索淘宝商品”API的一些关键信息&…

ception: Failed to execute ‘open‘ on ‘XMLHttpRequest‘: Invalid URL

ception: Failed to execute ‘open’ on ‘XMLHttpRequest’: Invalid URL at http://159.226.158.125:8008/static/js/vendor.c59f323a0c8fa195b048.js:7:113819 检查请求链接是否是完整无误 api.js内容: const application {add: generalApplicationService/…

杰发科技AC7840——SPI通信简介(1)_跑通Demo

0. 简介 一些配置项: CPHA:相序 CPLO:极性 看着demo需要按键,于是去掉按键,去掉打印,直接输出波形看逻辑分析仪的信号。 其实现在做这些demo测试应该都有逻辑分析仪,直接看波形更直观一点。…

综合能源系统:Modbus转IEC104网关解决方案

Modbus转IEC104网关BE102 方案概述 Modbus和IEC104是两种通信协议,各自适用于不同行业和场景,其中Modbus常见于工业自动化,而IEC104则主导电力行业。在某些项目中,需要将Modbus设备的数据传至IEC104电力平台,但两者协…

CentOS8 安装ansible

CentOS8 无法使用yum进行ansible安装,此次使用pip install ansible来安装ansible 大概步骤 1,编译安装升级python,centos8系统自动安装的python3.6版本过低,安装ansible时会有警告 2,安装pip 3,pip install…

Android 系统充电动画

效果 Android获取电池充电状态是否为快充可参考. Android_source/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java private int lastBatteryStatus;private final BroadcastReceiver mBatteryChangedReceiver new BroadcastRece…