mysql 8.0 窗口函数:cume_dist,percent_rank介绍

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
+关注继续查看

MySQL 8.0 引入的窗口函数,本节主要介绍row_number,cume_dist,percent_rank

row_number,cume_dist,percent_rank

  1. row_number():显示行号
  2. cume_dist:计算某个值在一组有序的数据中累计的分布

     计算结果为相对位置/总行数,返回值为(0,1]
    注意:对于重复值,计算的时候,取重复值的最后一行的位置
  3. percent_rank:和cume_dist 的不同点在于计算分布结果的方法
    计算方法为(相对位置-1)/(总行数-1)

    注意:对于重复值,计算的时候,取重复值的第一行的位
    
root@my3308.sock-8.0.11>[test]>select ROW_NUMBER() OVER w AS 'row_number', 
  c1, 
  CUME_DIST()  OVER w AS 'cume_dist',PERCENT_RANK() OVER w AS 'percent_rank'  
  from x window w as (order by c1);
+------------+------+-----------+---------------------+
| row_number | c1   | cume_dist | percent_rank        |
+------------+------+-----------+---------------------+
|          1 |    1 |     0.125 |                   0 |
|          2 |    7 |     0.375 | 0.14285714285714285 |
|          3 |    7 |     0.375 | 0.14285714285714285 |
|          4 |   10 |     0.625 | 0.42857142857142855 |
|          5 |   10 |     0.625 | 0.42857142857142855 |
|          6 |   11 |      0.75 |  0.7142857142857143 |
|          7 |   24 |         1 |  0.8571428571428571 |
|          8 |   24 |         1 |  0.8571428571428571 |
+------------+------+-----------+---------------------+
8 rows in set (0.00 sec)

#cume_dist
root@my3308.sock-8.0.11>[test]>select 1/8 as 'cume_dist_c1=1';
+----------------+
| cume_dist_c1-1 |
+----------------+
|         0.1250 |
+----------------+
1 row in set (0.00 sec)

root@my3308.sock-8.0.11>[test]>select 5/8 as 'cume_dist_c1=10';
+-----------------+
| cume_dist_c1-10 |
+-----------------+
|          0.6250 |
+-----------------+
1 row in set (0.00 sec)

#percent_rank
root@my3308.sock-8.0.11>[test]>select (2-1)/(8-1) as 'percent_rank-c1=7';
+-------------------+
| percent_rank-c1-7 |
+-------------------+
|            0.1429 |
+-------------------+
1 row in set (0.00 sec)

root@my3308.sock-8.0.11>[test]>select (7-1)/(8-1) as 'percent_rank-c1=24';
+--------------------+
| percent_rank-c1=24 |
+--------------------+
|             0.8571 |
+--------------------+
1 row in set (0.00 sec)
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
存储 关系型数据库 MySQL
LINUX中的mysql(一)安装
MySQL是一种常用的开源关系型数据库管理系统,广泛应用于Linux系统中。它提供了一个灵活、高效和可扩展的数据库解决方案,被许多应用程序和网站用于存储和管理数据。
41 0
|
4天前
|
前端开发 关系型数据库 MySQL
J2EE项目部署与发布(Linux版本)->jdk&tomcat安装,MySQL安装,后端接口部署,linux单体项目前端部署
J2EE项目部署与发布(Linux版本)->jdk&tomcat安装,MySQL安装,后端接口部署,linux单体项目前端部署
25 0
|
4天前
|
关系型数据库 MySQL Java
Linux系统jdk&Tomcat&MySQL安装以及J2EE后端接口部署
Linux系统jdk&Tomcat&MySQL安装以及J2EE后端接口部署
30 0
|
4天前
|
关系型数据库 MySQL 数据库
MySql安装
MySql安装
25 0
|
4天前
|
关系型数据库 MySQL 数据库
MySQL安装
MySQL安装
18 0
|
4天前
|
关系型数据库 MySQL Windows
安装 MySQL 服务时提示 Install/Remove of the Service Denied
安装 MySQL 服务时提示 Install/Remove of the Service Denied
15 0
|
4天前
|
关系型数据库 MySQL
docker-compose安装mysql坑
docker-compose安装mysql坑
10 0
|
4天前
|
关系型数据库 MySQL 容器
docker-compose安装mysql并指定忽略表名大小写以及挂载配置文件
docker-compose安装mysql并指定忽略表名大小写以及挂载配置文件
8 0
docker-compose安装mysql并指定忽略表名大小写以及挂载配置文件
|
4天前
|
关系型数据库 MySQL 数据安全/隐私保护
关于MySQL安装时一直卡在starting sever......手把手教你搞定
关于MySQL安装时一直卡在starting sever......手把手教你搞定
|
关系型数据库 MySQL
MySQL窗口函数—分布函数- CUME_DIST和PERCENT_RANK
MySQL窗口函数—分布函数- CUME_DIST和PERCENT_RANK
270 0
MySQL窗口函数—分布函数- CUME_DIST和PERCENT_RANK
推荐文章
更多