MIN 函数返回参数中指定列的最小值。

语法

MIN([ DISTINCT | UNIQUE | ALL ] expr) [ OVER (analytic_clause) ]

作为分析函数使用时,您需要使用窗口函数的完整语法,它对一组行的集合进行计算并返回多个值。作为聚合函数使用时,该函数对一组行的集合进行聚合计算,结果只能返回一个值,此时不需要加 OVER 关键字。

参数

参数

说明

DISTINCT

返回的行中去除重复行,且忽略值为 NULL 的行。

UNIQUE

返回的行中去除重复行,且忽略值为 NULL 的行。

ALL

返回所有值,包含重复行,且忽略值为 NULL 的行。

expr

可为数值、字符、日期型或其它类型的数据列或表达式。

OVER

使用 OVER 子句定义窗口进行计算。

返回类型

返回与 expr 相同数据类型的值。

示例

分析函数示例

以下语句创建了表 employees,并向里面插入数据:

CREATE TABLE employees (manager_id INT,last_name varchar(50),hiredate varchar(50),SALARY INT);
INSERT INTO employees VALUES(100, 'Raphaely', '2017-07-01', 1700);
INSERT INTO employees VALUES(100, 'De Haan', '2018-05-01',11000);      
INSERT INTO employees VALUES(100, 'Errazuriz', '2017-07-21', 1400);
INSERT INTO employees VALUES(100, 'Hartstein', '2019-05-01',14000);     
INSERT INTO employees VALUES(100, 'Raphaely', '2017-07-22', 1700);
INSERT INTO employees VALUES(100, 'Weiss',  '2019-07-11',13500);     
INSERT INTO employees VALUES(100, 'Russell', '2019-10-05', 13000);
INSERT INTO employees VALUES(100, 'Partners',  '2018-12-01',14000);     
INSERT INTO employees VALUES(200, 'Ross',  '2019-06-11',13500);     
INSERT INTO employees VALUES(200, 'Bell', '2019-05-25', 13000);
INSERT INTO employees VALUES(200, 'Part',  '2018-08-11',14000);

执行以下语句查询 SALARY 列的最小值:

SELECT manager_id, last_name, hiredate, salary, MIN(salary) OVER(PARTITION BY manager_id 
ORDER BY hiredate RANGE UNBOUNDED PRECEDING) AS p_cmin
FROM employees ORDER BY manager_id, last_name, hiredate, salary;
COMMIT;

查询结果如下:

+------------+-----------+------------+--------+--------+
| MANAGER_ID | LAST_NAME | HIREDATE   | SALARY | P_CMIN |
+------------+-----------+------------+--------+--------+
|        100 | De Haan   | 2018-05-01 |  11000 |   1400 |
|        100 | Errazuriz | 2017-07-21 |   1400 |   1400 |
|        100 | Hartstein | 2019-05-01 |  14000 |   1400 |
|        100 | Partners  | 2018-12-01 |  14000 |   1400 |
|        100 | Raphaely  | 2017-07-01 |   1700 |   1700 |
|        100 | Raphaely  | 2017-07-22 |   1700 |   1400 |
|        100 | Russell   | 2019-10-05 |  13000 |   1400 |
|        100 | Weiss     | 2019-07-11 |  13500 |   1400 |
|        200 | Bell      | 2019-05-25 |  13000 |  13000 |
|        200 | Part      | 2018-08-11 |  14000 |  14000 |
|        200 | Ross      | 2019-06-11 |  13500 |  13000 |
+------------+-----------+------------+--------+--------+

聚合函数示例

执行以下语句查询 SALARY 列的最小值:

SELECT MIN(salary)  FROM employees ;

查询结果如下:

+-------------+
| MIN(SALARY) |
+-------------+
|        1400 |
+-------------+
冒牌SEO

前端开发者,欢迎大家一起沟通和交流。

Share
Published by
冒牌SEO

Recent Posts

vue:页面注入js修改input值

一般会直接这样写: let z…

5 小时 ago

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

1 月 ago