Sql 简明教程
SQL - MIN() - MAX() function
SQL 中的 MIN() 和 MAX() 函数是聚合函数。它们用于比较集合中的值,并分别检索最大值和最小值。
MAX() 和 MIN() 聚合函数通常以两种方式使用:
-
作为函数,它们与 SELECT 语句的 GROUP BY 子句一起使用。
-
作为表达式,它们与 SELECT 语句的子查询和 HAVING 子句一起使用。
The SQL MAX() Function
MAX() 函数比较列中的值,并返回其中的最大值。
Example
在以下示例中,我们针对名为 CUSTOMERS 的表运行 MAX() 函数查询。目的是从此表检索最大薪资值。首先,让我们使用以下查询创建 CUSTOMERS 表 −
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
现在,使用如下所示的 INSERT 语句向此表中插入值:
INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00),
(2, 'Khilan', 25, 'Delhi', 1500.00),
(3, 'Kaushik', 23, 'Kota', 2000.00),
(4, 'Chaitali', 25, 'Mumbai', 6500.00),
(5, 'Hardik', 27, 'Bhopal', 8500.00),
(6, 'Komal', 22, 'Hyderabad', 4500.00),
(7, 'Muffy', 24, 'Indore', 10000.00);
CUSTOMERS 表将创建为 −
ID |
NAME |
AGE |
ADDRESS |
SALARY |
1 |
Ramesh |
32 |
Ahmedabad |
2000.00 |
2 |
Khilan |
25 |
Delhi |
1500.00 |
3 |
Kaushik |
23 |
Kota |
2000.00 |
4 |
Chaitali |
25 |
Mumbai |
6500.00 |
5 |
Hardik |
27 |
Bhopal |
8500.00 |
6 |
Komal |
22 |
Hyderabad |
4500.00 |
7 |
Muffy |
24 |
Indore |
10000.00 |
此处,我们正在比较 CUSTOMERS 的工资,并使用以下查询检索最大工资 −
SELECT MAX(SALARY) FROM CUSTOMERS;
执行以上查询时,结果显示为 −
MAX(SALARY) |
10000.0000 |
HAVING with MAX() Function
在以下查询中,我们使用 MAX() 函数和 HAVING 子句来获取 CUSTOMERS 的 ID、NAME 和 SALARY。
SELECT ID, NAME, SALARY
FROM CUSTOMERS
GROUP BY NAME, ID
HAVING MAX(SALARY) < 8000;
执行以上查询时,我们将获取最大工资小于 8000 的员工的详细信息 −
ID |
NAME |
SALARY |
1 |
Ramesh |
2000.00 |
2 |
Khilan |
1500.00 |
3 |
Kaushik |
2000.00 |
4 |
Chaitali |
6500.00 |
6 |
Komal |
4500.00 |
MAX() Function in Subqueries
在以下示例中,我们在子查询中使用 MAX() 函数从 CUSTOMERS 表中检索最大工资的记录。
SELECT * FROM CUSTOMERS
WHERE SALARY = (SELECT MAX(SALARY) FROM CUSTOMERS);
执行以上查询时,我们将获得以下结果 −
ID |
NAME |
AGE |
ADDRESS |
SALARY |
7 |
Muffy |
24 |
Indore |
10000.00 |
The SQL MIN() Function
MIN() 函数比较列中的值,并返回其中的最小值。
Example
在此示例中,我们正在比较 CUSTOMERS 表的 SALARY 列中的值,并使用以下查询显示最小工资 −
SELECT MIN(SALARY) FROM CUSTOMERS;
执行以上查询时,结果显示为 −
MIN(SALARY) |
1500.0000 |
HAVING with MIN() Function
在以下查询中,我们使用 MIN() 函数和 HAVING 子句来获取 CUSTOMERS 的 ID、NAME 和 SALARY。
SELECT ID, NAME, SALARY
FROM CUSTOMERS
GROUP BY NAME, ID
HAVING MIN(SALARY) > 5000;
执行以上查询时,我们将获取最小工资大于 5000 的员工的最大工资的详细信息,如下表所示 −
ID |
NAME |
MAX_Salary |
4 |
Chaitali |
6500.0000 |
5 |
Hardik |
8500.0000 |
7 |
Muffy |
10000.0000 |
MIN() Function in Subqueries
在以下示例中,我们在子查询中使用 MIN() 函数从 CUSTOMERS 表中检索最小工资的记录。
SELECT * FROM CUSTOMERS
WHERE SALARY = (SELECT MIN(SALARY) FROM CUSTOMERS);
执行以上查询时,我们将获得以下结果 −
ID |
NAME |
AGE |
ADDRESS |
SALARY |
2 |
Khilan |
25 |
Delhi |
1500.00 |