MariaDB MAX() 函数的基础用法与实例

MariaDB MAX() 函数用来返回一组值中的最大值。本文将介绍 MAX() 函数的语法、用法和实例。

发布于

MariaDB MAX() 函数用来返回一组值中的最大值。本文将介绍 MAX() 函数的语法、用法和实例。

语法

MairaDB MAX() 函数的语法如下:

MAX([DISTINCT] expr)
  • DISTINCT:一个可选关键字,用于返回指定表达式中不同值的最大值。
  • expr:需要评估的表达式或列名。
  • 返回值:指定表达式中的最大值。如果没有任何行匹配,则返回 NULL。

实例

查找数值列的最大值

本示例演示如何查找数值列的最大值。

CREATE TABLE numbers (
  id INT PRIMARY KEY,
  value INT
);

INSERT INTO numbers (id, value) VALUES
  (1, 10), (2, 5), (3, 20), (4, 15);

SELECT MAX(value) FROM numbers;

以下是该语句的输出:

+------------+
| MAX(value) |
+------------+
|         20 |
+------------+

查找字符串列的最大值

本示例演示如何查找字符串列的最大值。

CREATE TABLE names (
  id INT PRIMARY KEY,
  name VARCHAR(50)
);

INSERT INTO names (id, name) VALUES
  (1, 'Alice'), (2, 'Bob'), (3, 'Charlie'), (4, 'David');

SELECT MAX(name) FROM names;

以下是该语句的输出:

+-----------+
| MAX(name) |
+-----------+
| David     |
+-----------+

使用 DISTINCT 查找不同值的最大值

本示例演示如何使用 DISTINCT 关键字查找不同值的最大值。

CREATE TABLE scores (
  id INT PRIMARY KEY,
  score INT
);

INSERT INTO scores (id, score) VALUES
  (1, 80), (2, 90), (3, 75), (4, 90), (5, 85);

SELECT MAX(score), MAX(DISTINCT score) FROM scores;

以下是该语句的输出:

+------------+---------------------+
| MAX(score) | MAX(DISTINCT score) |
+------------+---------------------+
|         90 |                  90 |
+------------+---------------------+

可以看到,使用 DISTINCT 或不使用结果是一样的,因为 MAX() 函数本身就会返回最大值。

结合 GROUP BY 查找每组的最大值

本示例演示如何结合 GROUP BY 子句查找每组的最大值。

CREATE TABLE students (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  score INT
);

INSERT INTO students (id, name, score) VALUES
  (1, 'Alice', 85), (2, 'Bob', 92), (3, 'Charlie', 78),
  (4, 'David', 88), (5, 'Eve', 76);

SELECT name, MAX(score) FROM students GROUP BY name;

以下是该语句的输出:

+---------+------------+
| name    | MAX(score) |
+---------+------------+
| Alice   |         85 |
| Bob     |         92 |
| Charlie |         78 |
| David   |         88 |
| Eve     |         76 |
+---------+------------+

使用窗口函数查找滑动最大值

本示例演示如何使用窗口函数查找滑动最大值。

CREATE TABLE sales (
  id INT PRIMARY KEY,
  product VARCHAR(50),
  price INT
);

INSERT INTO sales (id, product, price) VALUES
  (1, 'Apple', 2), (2, 'Orange', 3), (3, 'Banana', 1),
  (4, 'Kiwi', 4), (5, 'Mango', 2);

SELECT id, product, price,
  MAX(price) OVER (ORDER BY id ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS max_price
FROM sales;

以下是该语句的输出:

+------+---------+-------+-----------+
| id   | product | price | max_price |
+------+---------+-------+-----------+
|    1 | Apple   |     2 |         2 |
|    2 | Orange  |     3 |         3 |
|    3 | Banana  |     1 |         3 |
|    4 | Kiwi    |     4 |         4 |
|    5 | Mango   |     2 |         4 |
+------+---------+-------+-----------+

相关函数

以下是几个与 MairaDB MAX() 相关的几个函数:

  • MariaDB MIN() 函数用来返回一组值中的最小值。
  • MariaDB SUM() 函数用来计算一组值的总和。
  • MariaDB AVG() 函数用来计算一组值的平均值。
  • MariaDB COUNT() 函数用来计算一组值的个数。

结论

本文介绍了 MariaDB MAX() 函数的语法、用法和实例。我们了解了如何使用该函数查找数值列、字符串列和不同值的最大值,以及如何结合 GROUP BY 子句和窗口函数使用该函数。同时,我们还介绍了一些与 MAX() 相关的聚合函数。