MySQL窗口函数 DENSE_RANK函数
1.简介
根据指定条件将某个select查询结果分为若干个区域,然后对这些区域通过DENSE_RANK函数指定的顺序进行排序,图1加强理解。
2.格式
DENSE_RANK() OVER(
PARTITION BY expression,expression...
ORDER BY <expression>[DESC|ASC],[{,}]
)
说明:
PARTITION BY 字句将from的结果划分为多个分区。
ORDER BY 指定DENSE_RANK()函数操作的每个分区。
如果分区当中有两个或者是两个以上的列相同,则为它们分配相同的排名。
3.举例
创建表sales
create table if not exists sales(
sales_employee varchar(255) not null,
fiscal_year date not null,
sale double not null
)engine=innodb;
并且如下的数据
INSERT INTO `sales` VALUES ('Alice', '2016', '150.00');
INSERT INTO `sales` VALUES ('Alice', '2017', '100.00');
INSERT INTO `sales` VALUES ('Alice', '2018', '200.00');
INSERT INTO `sales` VALUES ('Bob', '2016', '100.00');
INSERT INTO `sales` VALUES ('Bob', '2017', '150.00');
INSERT INTO `sales` VALUES ('Bob', '2018', '200.00');
INSERT INTO `sales` VALUES ('John', '2016', '200.00');
INSERT INTO `sales` VALUES ('John', '2017', '150.00');
INSERT INTO `sales` VALUES ('John', '2018', '250.00');
现在通过分区函数DENSE_RANK()函数对按销售额对销售人员进行排名,
SELECTsales_employee,fiscal_year,sale,DENSE_RANK() OVER (PARTITION BY fiscal_yearORDER BY sale DESC) as sales_rank
FROM sales;
结果如下。
详解:
第一步:PARTITION BY EXPRESS,会使用年度将结果划分为分区。
第二步:ORDER BY sale DESC ,会按照销售额对人员进行排序。
参考文章:
MySQL DENSE_RANK() 函数 | 新手教程 (begtut.com)
MySQL窗口函数 DENSE_RANK函数相关推荐
- MySQL窗口函数 OVER()函数介绍
前期准备的数据 # 创建数据库 create database if not exists shopping charset utf8; # 选择数据库 use shopping; # 创建产品表 c ...
- MySQL 序号(排序)函数:row_number() 、rank() 、 dense_rank()、ntile()
前言:以下函数都是MySQL8.0版本才支持,使用前请确认当前MySQL版本,详情可百度MySQL8.0新特性-窗口函数-序列函数 1.测试表内容 MySQL版本:8.0.11 示例: 2.row_n ...
- 【MySQL数据库】MySQL聚合函数、时间函数、日期函数、窗口函数等函数的使用
目 前言 MySQL函数 聚合函数 数学函数 字符串函数 日期函数 控制流函数 窗口函数 序号函数 开窗聚合函数- SUM,AVG,MIN,MAX 前后函数 lag lead 首尾函数first_va ...
- MySQL DENSE_RANK函数简介
MySQL DENSE_RANK函数简介 DENSE_RANK()是一个窗口函数,它为分区或结果集中的每一行分配排名,而排名值没有间隙. 语法: DENSE_RANK() OVER (PARTITIO ...
- [Mysql] RANK()函数 | ROW_NUMBER()函数 | DENSE_RANK()函数
窗口函数的基本语法 <窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>) ※ []中的内容可以省略 注意: ...
- mysql窗口函数_MySQL8.0窗口函数入门实践及总结
前言 MySQL8.0之前,做数据排名统计等相当痛苦,因为没有像Oracle.SQL SERVER .PostgreSQL等其他数据库那样的窗口函数.但随着MySQL8.0中新增了窗口函数之后,针对这 ...
- MySQL窗口函数简介
原文地址:https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_last-value 译 ...
- MySQL之——常用函数汇总
目录 1.MySQL字符串拼接函数 2.MySQL字符串截取函数 3.MySQL字符串长度函数char_length().length() 4.MySQL大小写转换函数 5.MySQL之case wh ...
- MySQL:开窗函数
当查询条件需要用到复杂子查询时,聚合函数操作起来非常麻烦,因此使用开窗函数能够轻松实现. 注意:在Oracle中称为分析函数. 在MySQL中称为开窗函数,使用于MySQL8.0以上版本,sql se ...
- MYSQL窗口函数用法及区别
本博客转自:https://blog.csdn.net/weixin_34384915/article/details/87551597 窗口函数(OLAP 实时分析处理函数) ,可以一般聚合函数无法 ...
最新文章
- 网站真分页js代码该怎么写?
- MapReduce基础开发之四参数传递
- set,env和export命令显示shell变量其区别,与环境变量扫盲(一)
- html overflow隐藏滚动条,css 之内容溢出滚动,隐藏滚动条
- matlab 二维高斯滤波 傅里叶_光电图像处理 | 傅里叶变换(二)
- 函数计算FC让游戏群采集营销数据滴水不漏
- MySQL日期时间函数大全(转)
- 活动页面html设计,活动查看页面.html
- 带你学 Redis:Redis简介(一)
- (已解决) centos6.5 yum源 失效 The whole CentOS 6 is dead and shouldn’t be used anywhere at all
- 软考中级【数据库系统工程师】第0章:如何自学备考,考试介绍考什么,备考教材,上午和下午的体型分数分布,备考课程链接,个人备考感谢
- SugarNMS 工业交换机网管软件
- 如何快速成为数据分析师?
- 信息可视化图表设计指南
- 如果你要补充益生菌 ——益生菌补充、个体化、定植指南
- 不同操作系统图片显示发生颠倒,linux ubuntu win7 win10
- Arduino IDE+_Attiny13/85实践(一) IED环境配置
- accept()使用
- AltiumDesigner工具使用
- 问题解决:网上导入git项目,各种报错