MySQL实战1

news2025/1/16 2:59:39

主要内容

  1. 墨西哥和美国第三高峰
  2. 用latest_event查找当前打开的页数

一.墨西哥和美国第三高峰

1.准备工作

代码如下(示例):

drop database if exists db_1;

create database db_1;

use db_1;

CREATE TABLE tb_mountains (
	name VARCHAR(50),
	height INT,
	country VARCHAR(50)
);

INSERT INTO tb_mountains (name, height, country)
VALUES
	('德纳利山', 20310, '美国'),
	('圣伊莱亚斯山', 18008, '美国'),
	('福拉克山', 17402, '美国'),
	('奥里萨巴峰', 18491, '墨西哥'),
	('波波卡特佩特尔火山', 17820, '墨西哥'),
	('伊斯塔西瓦特尔火山', 17160, '墨西哥')
;

select * from tb_mountains;

2.目标

  • 说明

  • 找出每个国家第三高的山名,并按ASC顺序对国家、地区排序

  • 输入

在这里插入图片描述

  • 输出
    在这里插入图片描述

3.实现

代码如下(示例):
with t1 as (
	select
		name, height, country,
		dense_rank() over (partition by country order by height desc) as rn
	from tb_mountains
)
select
	name, height, country
from t1
where rn=3

4.相似例子

部门工资前三高的所有员工

代码如下(示例):

# todo 问题: 开窗函数中 1 row_number 2 rank 3 dense_rank 区别在什么地方
Create table If Not Exists Employee (id int, name varchar(255), salary int, depa
Create table If Not Exists Department (id int, name varchar(255));
Truncate table Employee;

insert into Employee (id, name, salary, departmentId) values ('1', 'Joe', '85000
insert into Employee (id, name, salary, departmentId) values ('2', 'Henry', '800
insert into Employee (id, name, salary, departmentId) values ('3', 'Sam', '60000
insert into Employee (id, name, salary, departmentId) values ('4', 'Max', '90000
insert into Employee (id, name, salary, departmentId) values ('5', 'Janet', '690
insert into Employee (id, name, salary, departmentId) values ('6', 'Randy', '850
insert into Employee (id, name, salary, departmentId) values ('7', 'Will', '7000
Truncate table Department;
insert into Department (id, name) values ('1', 'IT');
insert into Department (id, name) values ('2', 'Sales');


select * from employee;

select * from department;

with t1 as (
	select
		e.id, e.name employee, e.salary, e.departmentId, d.name as department
from Employee e
join department d on e.departmentId = d.id
),
t2 as (
	select
		id, employee, salary, departmentId, department,
		# row_number() over (partition by departmentId order by salary desc) as
		# rank() over (partition by departmentId order by salary desc) as rn
		dense_rank() over (partition by departmentId order by salary desc) as rn
	from t1
)
select
	department,
	employee,
	salary,
	rn
from t2
where rn<=3
;
with t1 as (
	select
		e.id, e.name employee, e.salary, e.departmentId, d.name as department
	from Employee e
	join department d on e.departmentId = d.id
),
t2 as (
	select
		id, employee, salary, departmentId, department,
		# row_number() over (partition by departmentId order by salary desc) as
		# rank() over (partition by departmentId order by salary desc) as rn
	dense_rank() over (partition by departmentId order by salary desc) as rn
from t1
)
select
	department,
	employee,
	salary
from t2
where rn<=3
;


二.用latest_event查找当前打开的页数

1.准备工作

代码如下(示例):
drop database if exists db_1;
create database db_1;
use db_1;

CREATE TABLE tb_pages_info (
	page_id INT,
	event_time TIMESTAMP,
	page_flag VARCHAR(3)
);
INSERT INTO tb_pages_info (page_id, event_time, page_flag)
VALUES
	(1, NOW() - INTERVAL 6 HOUR, 'ON'),
	(1, NOW() - INTERVAL 3 HOUR, 'OFF'),
	(1, NOW() - INTERVAL 1 HOUR, 'ON'),
	(2, NOW() - INTERVAL 3 HOUR, 'ON'),
	(2, NOW() - INTERVAL 1 HOUR, 'OFF'),
	(3, NOW(), 'ON');
	
select * from tb_pages_info;

2.目标

  • 说明

  • 查找当前正在使用的页面数,通过page_flag识别开/关
    根据题目描述,"tb_pages_info"表的结构如下所示:
    在这里插入图片描述
    其中,"page_id"列表示⻚面的唯一标识符,"event_time"列表示⻚面状态更改的时间戳,“page_flag"列表示⻚面的状态标志,可以为"ON"或"OFF”。
    问题:给定下表,表中包含有关⻚面状态更改时间的信息。
    请使用SQL查找当前使用 latest_event 的⻚面数。
    注意,表中 page_flag 列将用于识别⻚面是『OFF』还是『ON』。

  • 输入
    在这里插入图片描述

  • 输出
    在这里插入图片描述

  • 解释
    根据给定的示例输入,页面2的最新状态为"OFF",页面1和页面3最新状态为"ON"。因此,具有最新状态的页面数量为2。

3.实现

代码如下(示例):
with t1 as (
	select
		page_id, event_time, page_flag,
		row_number() over (partition by page_id order by event_time desc) as rn
	from tb_pages_info
),
t2 as (
	select
		*
	from t1
	where rn=1 and page_flag='ON'
)
select
	count(1) as result
from t2
;

4.拓展问题

除了显示正在打开的页面数,还需要显示哪些页面?

代码如下(示例):
with t1 as (
	select
		page_id, event_time, page_flag,
		row_number() over (partition by page_id order by event_time desc) as
	from tb_pages_info
),
t2 as (
	select
		*
	from t1
	where rn=1 and page_flag='ON'
)
select
	count(1) over() as result,
	page_id
	# event_time, page_flag, rn
from t2
;


总结

以上是今天要讲的内容,实战了:墨西哥和美国第三高峰,用latest_event查找当前打开的页数。

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

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

相关文章

nrf52832 开发板入手笔记:J-Flash 蓝牙协议栈烧写

前言 nrf52832 想要开启 蓝牙功能&#xff0c;比如蓝牙主从机功能&#xff0c;需要额外烧写 蓝牙协议栈的固件&#xff1a;softdevice&#xff0c;换句话说&#xff0c;蓝牙协议栈等代码是不开放的&#xff0c;只提供一个 二进制文件。 也就是 nrf52832 Flash 与 RAM 要分区了…

Linux学习第26天:异步通知驱动开发: 主动

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 在正式开启今天的学习前&#xff0c;讲一讲为什么标题中加入了【主动】俩字。之前学习的阻塞和非阻塞IO&#xff0c;都是在被动的接受应用程序的操作。而今天的学…

MyBatis-Plus 实战教程四 idea插件

文章目录 插件功能分页插件配置分页插件分页API 通用分页实体实体开发接口改造PageQuery实体改造PageDTO实体 仓库地址 插件功能 MybatisPlus提供了很多的插件功能&#xff0c;进一步拓展其功能。目前已有的插件有&#xff1a; PaginationInnerInterceptor&#xff1a;自动分…

中微爱芯74逻辑兼容替代TI/ON/NXP工规品质型号全

这里写自定义目录标题 工业级型号全产品线概述![在这里插入图片描述](https://img-blog.csdnimg.cn/097ef810b2234f07b0c0c1e962a73761.png)批量应用行业头部客户兼容替代封装对照逻辑参数对比电平转换系列型号对照HC/HCT 系列型号对照AHC/AHCT 系列型号对照LV/LVC 系列型号对照…

【ARMv8 SIMD和浮点指令编程】NEON 通用数据处理指令——复制、反转、提取、转置...

NEON 通用数据处理指令包括以下指令(不限于): • DUP 将标量复制到向量的所有向量线。 • EXT 提取。 • REV16、REV32、REV64 反转向量中的元素。 • TBL、TBX 向量表查找。 • TRN 向量转置。 • UZP、ZIP 向量交叉存取和反向交叉存取。 1 DUP (element) 将…

无线电编码和记录和静音检测器 PlayOutONE LiveStream 5.0

直播编码器&#xff0c;随处流式传输。LiveStream 应用程序的多色图案屏幕截图&#xff0c;显示一波进入&#xff0c;四路流出来&#xff0c;LiveStream是一站式应用程序&#xff0c;可让您的电台在需要的地方输出。 对音频进行编码以进行流式传输&#xff0c;使用您最喜欢的V…

Megatron-LM GPT 源码分析(三) Pipeline Parallel分析

引言 本文接着上一篇【Megatron-LM GPT 源码分析&#xff08;二&#xff09; Sequence Parallel分析】&#xff0c;基于开源代码 GitHub - NVIDIA/Megatron-LM: Ongoing research training transformer models at scale &#xff0c;通过GPT的模型运行示例&#xff0c;从三个维…

【鸿蒙软件开发】ArkTS基础组件之TextClock(时间显示文本)、TextPicker(滑动选择文本)

文章目录 前言一、TextClock1.1 子组件1.2 接口参数TextClockController 1.3 属性1.4 事件1.5 示例代码 二、TextPicker2.1 子组件2.2 接口参数 2.3 属性2.4 事件2.5 示例代码 总结 前言 TextClock组件:通过文本将当前系统时间显示在设备上。支持不同时区的时间显示&#xff0…

MySQL实战2

文章目录 主要内容一.回访用户1.准备工作代码如下&#xff08;示例&#xff09;: 2.目标3.实现代码如下&#xff08;示例&#xff09;: 二.如何找到每个人每月消费的最大天数1.准备工作代码如下&#xff08;示例&#xff09;: 2.目标3.实现代码如下&#xff08;示例&#xff09…

Pandas时间序列、时间戳对象、类型转换、时间序列提取、筛选、重采样、窗口滑动

时间序列数据是指在时间间隔不变的情况下收集的时间点数据&#xff0c;可以用来分析事物的长期发展趋势&#xff0c;并对未来进行预测。 date_range()方法及参数 pandas.date_range(startNone, endNone, periodsNone, freqNone, tzNone, normalizeFalse, nameNone, inclusive‘…

08.K8S高可用方案

K8S高可用方案 1、高可用部署方式 官方提供两种高可用实现方式: 堆叠etcd 拓扑,其中 etcd 节点与控制平面节点共存;外部 etcd 节点,其中 etcd 与控制平面在不同的节点上运行;1.1、堆叠 etcd 拓扑 主要特点: 每个 master 节点上运行一个 apiserver 和 etcd, etcd 只与本…

Spring Security: 整体架构

Filter Spring Security 是基于 Sevlet Filter 实现的。下面是一次 Http 请求从 client 出发&#xff0c;与 Servlet 交互的图&#xff1a; 当客户端发送一个请求到应用&#xff0c;容器会创建一个 FilterChain&#xff0c;FilterChain 中包含多个 Filter 和 Servlet。这些 Fi…

C#,数值计算——分类与推理,基座向量机的 Svmgenkernel的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public abstract class Svmgenkernel { public int m { get; set; } public int kcalls { get; set; } public double[,] ker { get; set; } public double[] y { get; set…

构建第二大脑#知识库使用指南

fortelabs.com/blog/basboverview 《构建第二大脑&#xff1a;入门指南》提到一个步骤&#xff1a; 通过策划和管理您的个人信息流来减轻压力和“信息过载”创建一个内心平静的数字环境充分发挥您周围丰富学习资源的价值&#xff0c;例如在线课程、网络研讨会、书籍、文章、论坛…

threejs(8)-详解光线投射与物体交互

详解光线投射与物体交互 import * as THREE from "three"; // 导入轨道控制器 import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"; // 导入动画库 import gsap from "gsap"; // 导入dat.gui import * as dat from &qu…

QVHZO-A-06/18、QVHZE-A-06/36比例流量控制阀放大器

QVHZO-A-06/36、QVHZO-A-06/12、QVHZO-A-06/45、QVHZO-A-06/18、QVKZOR-A-10/65、QVKZOR-A-10/90、QVHZE-A-06/36、QVHZE-A-06/12、QVHZE-A-06/45、QVHZE-A-06/18、QVKZE-A-10/65、QVKZE-A-10/90带压力补偿的比例流量控制阀&#xff0c;直动式&#xff0c;不带位置传感器&#…

圆锥面积 题解

圆锥体积 描述 已知一个圆锥体的高 h 和底面积的半径 r &#xff0c;求该圆锥体的体积&#xff0c;保留3位小数。 圆锥底部圆面积S的计算公式为&#xfffd;&#xfffd;∗&#xfffd;∗&#xfffd;Sπ∗r∗r 这里的&#xfffd;3.14159π3.14159 圆锥体的体积V计算公式为…

可以提取图像文本的 5 大 Python 库

主要是了解并掌握文本定位和识别的OCR工具哦~ 光学字符识别是一个古老但依然具有挑战性的问题&#xff0c;涉及从非结构化数据中&#xff08;包括图像和PDF文档&#xff09;检测和识别文本。它在银行、电子商务和社交媒体内容管理等领域具有广泛的应用。 但与数据科学中的每个主…

FreeRTOS中osDelay和HAL_Delay的区别

问题场景 在FreeRTOS中创建了线程A、线程B&#xff0c;其中线程A优先级大于线程B。线程A、B任务代码如下: void A(void *argument) {while (1){printf("A\r\n");HAL_Delay(1000);} }void B(void *argument) {while (1){printf("B\r\n");HAL_Delay(1000);} …

基于springboot实现校园疫情防控系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现校园疫情防控系统演示 摘要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&am…