MySQL窗口函数—头尾函数-FIRST_VALUE和LAST_VALUE

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL窗口函数—头尾函数-FIRST_VALUE和LAST_VALUE

用途:返回第一个(FIRST_VALUE(expr))或最后一个(LAST_VALUE(expr))expr的值


应用场景:截止到当前,按照日期排序查询第1个入职和最后1个入职员工的薪资


select
  dname,
  ename,
  hiredate,
  salary,
  first_value(salary) over(partition by dname order by hiredate) as first,
  last_value(salary) over(partition by dname order by  hiredate) as last 
from  employee;

image.png


显示截止到目前为止某字段排名第几的值

用途:返回窗口中第n个expr的值。expr可以是表达式,也可以是列名


应用场景:截止到当前薪资,显示每个员工的薪资中排名第2或者第3的薪资


image.png


智能分组 根据字段数进行分组

用途:将分区中的有序数据分为n个等级,记录等级数


应用场景:将每个部门员工按照入职日期分成3组


-- 根据入职日期将每个部门的员工分成3组
select 
  dname,
  ename,
  hiredate,
  salary,
ntile(3) over(partition by dname order by  hiredate  ) as rn 
from employee;

image.png


这个有时候,与用于我们的自动分组,加入目前有999个人,老师喊你把这些人做一个分组,一共分成19个,那么难道你还去用计算机算一下吗,不用直接使用该ntile即可分组,而且分组比较快,不需要计算。


那么假如你拿到的是,学校的数据,一个学校里面有很多个学院,这个时候你需要根据学院进行分组,并且需要把第一组的人员找出来,然后给他们划分任务,这个时候直接在后面加一个条件即可。(子查询)


-- 取出每个部门的第一组员工
select
*
from
(
    SELECT 
        dname,
        ename,
        hiredate,
        salary,
    NTILE(3) OVER(PARTITION BY dname ORDER BY  hiredate  ) AS rn 
    FROM employee
)t
where t.rn = 1;
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL 索引
936. 【mysql】locate函数
936. 【mysql】locate函数
22 2
|
1月前
|
SQL 关系型数据库 MySQL
927. 【mysql】coalesce 函数
927. 【mysql】coalesce 函数
23 3
|
1月前
|
关系型数据库 MySQL
926.【mysql】 date 函数
926.【mysql】 date 函数
67 3
|
1月前
|
关系型数据库 MySQL
925. 【mysql】convert 函数
925. 【mysql】convert 函数
23 3
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】2、MySQL 的数据控制语言、函数和约束
【MySQL 数据库】2、MySQL 的数据控制语言、函数和约束
31 0
|
11天前
|
SQL 关系型数据库 MySQL
DQL语言之常见函数(mysql)
DQL语言之常见函数(mysql)
|
18天前
|
SQL 关系型数据库 MySQL
mysql多表查询、函数查询
mysql多表查询、函数查询
|
1月前
|
关系型数据库 MySQL 数据库
【mysql】—— 函数的基本介绍
【mysql】—— 函数的基本介绍
|
1月前
|
关系型数据库 MySQL
922.【mysql】if 函数
922.【mysql】if 函数
19 3
|
1月前
|
关系型数据库 MySQL 数据处理
Mysql基础第十四天,使用数据处理函数
Mysql基础第十四天,使用数据处理函数
60 0