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

MySQL练手题--体育馆的人流量(困难)

一、准备工作

Create table If Not Exists Stadium (id int, visit_date DATE NULL, people int);
Truncate table Stadium;
insert into Stadium (id, visit_date, people) values ('1', '2017-01-01', '10');
insert into Stadium (id, visit_date, people) values ('2', '2017-01-02', '109');
insert into Stadium (id, visit_date, people) values ('3', '2017-01-03', '150');
insert into Stadium (id, visit_date, people) values ('4', '2017-01-04', '99');
insert into Stadium (id, visit_date, people) values ('5', '2017-01-05', '145');
insert into Stadium (id, visit_date, people) values ('6', '2017-01-06', '1455');
insert into Stadium (id, visit_date, people) values ('7', '2017-01-07', '199');
insert into Stadium (id, visit_date, people) values ('8', '2017-01-09', '188');

# 编写解决方案找出每行的人数大于或等于 100 且 id 连续的三行或更多行记录。
# 返回按 visit_date 升序排列 的结果表。

输入:

输出:

二、分析

 三、实现

with t as (select * from stadium where people >=100    -- 每行人数大于等于100
), t1 as (select*,row_number() over (order by id) rn     -- 对大于等于100的id排序from t
), t2 as (select*,id-rn as 差值                          -- 对id和排序求差,差值相等的为连续from t1
),t3 as (select 差值,count(差值) cn from t2 group by 差值    -- 求差值相等且大于等于3的记录
)
select id,visit_date,people from t2 ,t3 where t2.差值=t3.差值 and cn>=3 order by id; 

四、总结

此题稍微微有一点难度,如果看不明白可以对题目进行分解分析,分析出一步之后再接下一步来查询,题目已经要求人数大于等于100且id连续三行,就可以先筛选出大于等于100 的id 然后排序求差 差值相等的均为id连续的 ,最后筛选差值总数大于等于3 的,便出来了最后结果;

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PyCharm安装
  • Jacoco的XML报告详解
  • Uniapp + Vue3 + Vite +Uview + Pinia 实现购物车功能(最新附源码保姆级)
  • Flask 第八课 -- 模板渲染
  • ArrayList 源码解析
  • Python快速入门 —— 第三节:类与对象
  • 手机玩机常识____展讯芯片刷机平台ResearchDownload的一些基本常识与问题解决
  • 【网络安全的神秘世界】渗透测试基础
  • 3. Python计算水仙花数
  • 2848. 与车相交的点(24.9.19)
  • TCP和MQTT通信协议
  • 音视频开发常见的开源项目汇总
  • C语言自定义类型结构体(24)
  • 免费SSL证书正在逐渐被淘汰,证书部署自动化的发展趋势即将到来!
  • LabVIEW中AVI帧转图像数据
  • [LeetCode] Wiggle Sort
  • Create React App 使用
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • extract-text-webpack-plugin用法
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • leetcode388. Longest Absolute File Path
  • oschina
  • PAT A1120
  • Vue--数据传输
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 基于 Babel 的 npm 包最小化设置
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 什么软件可以剪辑音乐?
  • 数组的操作
  • 一个项目push到多个远程Git仓库
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • Linux权限管理(week1_day5)--技术流ken
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • #数据结构 笔记三
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (初研) Sentence-embedding fine-tune notebook
  • (纯JS)图片裁剪
  • (汇总)os模块以及shutil模块对文件的操作
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (一)Docker基本介绍
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .Net mvc总结
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @media screen 针对不同移动设备
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)