MySQL8.0 ROW_NUMBER 调用案例

ROW_NUMBER()是一个窗口函数或分析函数,它为从1开始应用的每一行分配一个序号。
在这里插入图片描述
创建表和生成所需要的数据

CREATE TABLE chapter11 ( shopname VARCHAR(255) NULL, sales
VARCHAR(255) NULL, sale_date DATE NULL );

INSERT INTO chapter11 (shopname, sales, sale_date) VALUES(‘A’, ‘1’,
‘2020-01-01’); INSERT INTO chapter11 (shopname, sales, sale_date)
VALUES(‘B’, ‘3’, ‘2020-01-01’); INSERT INTO chapter11 (shopname,
sales, sale_date) VALUES(‘C’, ‘5’, ‘2020-01-01’); INSERT INTO
chapter11 (shopname, sales, sale_date) VALUES(‘A’, ‘7’, ‘2020-01-02’);
INSERT INTO chapter11 (shopname, sales, sale_date) VALUES(‘B’, ‘9’,
‘2020-01-02’); INSERT INTO chapter11 (shopname, sales, sale_date)
VALUES(‘C’, ‘2’, ‘2020-01-02’); INSERT INTO chapter11 (shopname,
sales, sale_date) VALUES(‘A’, ‘4’, ‘2020-01-03’); INSERT INTO
chapter11 (shopname, sales, sale_date) VALUES(‘B’, ‘6’, ‘2020-01-03’);
INSERT INTO chapter11 (shopname, sales, sale_date) VALUES(‘C’, ‘8’,
‘2020-01-03’);

1、按照销量进行排序

SELECT * from chapter11   order by sales ;

在这里插入图片描述


第二种写法:
SELECT   t.shopname,              -- 商店名称  t.sales,                 -- 销售额  t.sale_date ,              -- 销售日期    
-- 使用 ROW_NUMBER() 函数对结果进行编号,按照 sales 列的值进行排序  ROW_NUMBER() over(order by t.sales) as rank_num   
FROM chapter11 t

在这里插入图片描述

2、获取各A、B、C自组内的一个排名结果

	SELECT   t.shopname, -- 商店名称  t.sales, -- 销售额  t.sale_date, -- 销售日期  -- 使用ROW_NUMBER()函数为每个商店生成一个行号,PARTITION by shopname按照商店名称进行分组,然后行号的生成基于销售额进行排序  ROW_NUMBER() over(PARTITION by shopname ORDER BY sales)  as rm  
FROM   chapter11 t;#ROW_NUMBER(): 这是一个窗口函数,用于为每一行生成一个唯一的数字。

在这里插入图片描述
3、获取每个店铺销量最差的一天数据。

SELECT   t.shopname,  t.sales,  t.sale_date  
FROM   (  SELECT   shopname,  sales,  sale_date,  ROW_NUMBER() OVER (PARTITION BY shopname ORDER BY sales ) AS rm  FROM   chapter11  ) t  
WHERE   t.rm = 1;

第二种写法:

	with sales_bad  as(SELECT   t.shopname, -- 商店名称  t.sales, -- 销售额  t.sale_date, -- 销售日期  -- 使用ROW_NUMBER()函数为每个商店生成一个行号,PARTITION by shopname按照商店名称进行分组,然后行号的生成基于销售额进行排序  ROW_NUMBER() over(PARTITION by shopname ORDER BY sales)  as rm  
FROM   chapter11 t;)SELECT * from sales_bad  where rm =1

在这里插入图片描述

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

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

相关文章

大数据背景下基于联邦学习的小微企业信用风险评估研究

摘要: 小微企业信用风险评估难是制约其融资和发展的一个主要障碍。基于大数据的小微企业信用风险评估依然面临着单机构数据片面、跨机构数据共享难、模型不稳定等诸多挑战。针对相关问题和挑战,本项目拟在多主体所有权数据隐私保护与安全共享的背景下&am…

构建基础wlan网络 hcia无线

实验 旁挂组网 二层网络 ac为 dhcp的服务器给ap地址 s1给sta的ip地址 DHCP 业务为直接转发 实验步骤 第一步 poe 开启 poe en 开启 第二步 有线连接 vlan的配置 s1 vlan batch 100 101 连接的端口 port link-type trunk port trunk allow-pass …

NodeJs - Chrome内存分析工具使用

NodeJs - Chrome内存分析工具使用 一. 前期准备二. Chrome 内存分析工具使用2.1 查看快照2.2 使用案例 一. 前期准备 我们下载好相关依赖: npm i v8-profiler-next测试代码: const v8Profiler require(v8-profiler-next) const fs require(fs)funct…

听GPT 讲Rust源代码--library/alloc(2)

File: rust/library/alloc/src/vec/mod.rs 在Rust源代码中,rust/library/alloc/src/vec/mod.rs这个文件是Rust标准库中的Vec类型的实现文件。Vec是一个动态大小的数组类型,在内存中以连续的方式存储其元素。 具体来说,mod.rs文件中定义了以下…

Elasticsearch:使用 ELSER v2 文本扩展进行语义搜索

Elastic 提供了一个强大的 ELSER 供我们进行语义搜索。ELSER 是一种稀疏向量的搜索方法。我们无需对它做任何的微调及训练。它是一种 out-of-domain 的模型。目前它仅对英文进行支持。希望将来它能对其它的语言支持的更好。更多关于 ELSER 的知识,请参阅文章 “Elas…

MySql——1146 - Table‘mysql.proc‘doesn‘t exit是这个

项目场景: 做自己的小项目需要连接mysql数据库 问题描述 点击数据库时报错 1146 - Table’mysql.proc’doesn’t exit 原因分析: 误删原生的mysql数据库 解决方案: 重新安装装部署mysql就好了 注意不要轻易删除原生的东西

day55 算法训练|动态规划part15

392.判断子序列 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的…

react学习第一天

脚手架的创建 1.创建环境变量 npm init -y 2.创建node-modules npm add -D create-react-app 3.创建脚手架 npx create-react-app react-demo1 报错一号 报错原因:node版本太低 解决:升级版本 nvm install 14.0.0 nvm use 14.0.0 报错二号 报错原因&…

牛客网SQL训练5—SQL大厂面试真题

文章目录 一、某音短视频1.各个视频的平均完播率2.平均播放进度大于60%的视频类别3.每类视频近一个月的转发量/率4.每个创作者每月的涨粉率及截止当前的总粉丝量5.国庆期间每类视频点赞量和转发量6.近一个月发布的视频中热度最高的top3视频 二、用户增长场景(某度信…

git上传代码到github远程仓库

1、添加SSH公钥 为了把本地的仓库传到github,还需要配置ssh key,说白了就是为了把本地的代码上传到github。 1、前置准备 本地需要安装git:Git - Downloads。安装成功后本地右键鼠标会多出一些git选项。 2、添加SSH Key 首先在本地创建s…

红队打靶练习:MISDIRECTION: 1

信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.12.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.12.1 00:50:56:c0:00:08 …

Linux环境下OpenSSH升级到 OpenSSH_9.5p1(内置保姆级教程)

我最近在修复服务器的openssh漏洞的时候是服务器生产环境,自己在做的时候,就遇到的重启之后直接断掉ssh的连接,最后发现原因是没配置sshd_config的允许远程用户登录,因此,在此记录一下升级openssh的操作步骤&#xff0…

算法基础之能被整除的数

能被整除的数 核心思想&#xff1a; 容斥原理 总面积 1-23-4…. 总集合元素中个数 1-23-4…. #include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N 20;typedef long long LL;int p[N];int main(){int n,m;cin&…

十八、任务通知

1、前言 (1)所谓“任务通知”&#xff0c;可以反过来读"通知任务"。我们使用队列、信号量、事件组等等方法时&#xff0c;并不知道对方是谁。使用任务通知时&#xff0c;可以明确指定&#xff1a;通知哪个任务。 (2)使用队列、信号量、事件组时&#xff0c;我们都需…

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项样题卷②

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项&#xff08;高职组&#xff09; 样题&#xff08;第2套&#xff09; 目录 2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项&#xff08;高职组&#xff09; 样题&#xff08;第2套&#xff09; 模块…

Topics(动态路由)

Topic类型的Exchange与Direct相比&#xff0c;都是可以根据RoutingKey把消息路由到不同的队列中。只不过Topic类型Exchange可以让队列在绑定路由时可以使用通配符。 *&#xff1a;匹配不多不少刚好一个单词。 #&#xff1a;匹配一个或多个词。 举例&#xff1a; audit.#可以匹配…

解密C++中的forward<int>(a)和forward<int >(a):你真的了解它们之间的区别吗?

一文看尽C中的forward完美转发 一、前言二、深入理解forward和完美转发三、对forward<int>(a)的解析四、对forward<int &&>(a)的解析五、forward<int>(a)和forward<int &&>(a)的区别总结 一、前言 完美转发在C中具有重要性&#xff0…

一文掌握Java注解之@SpringBootApplication知识文集(1)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

Spring Cloud Gateway + Nacos 实现动态路由

1、maven 依赖 主要依赖 <!-- 网关 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>案件差不多完整主要依赖 <!--Spring boot 依赖(微服务基…

fanout(扇出模型)

在广播的流程下&#xff0c;消息发送的流程如下&#xff1a; 可以有多个消费者。 每个消费者有自己的queue(队列)。 每个队列都要绑定到Exchange(交换机)。 生产者发送的消息&#xff0c;只能发送到交换机&#xff0c;交换机来决定要发给哪个队列&#xff0c;生产者也无法决…