MIN 函数

min([DISTINCT] expr) [FILTER (WHERE condition)]

功能描述

MIN 函数用于从一组数据中找出最小值。该函数支持多种数据类型,包括数值类型(如 TINYINTSMALLINTINTBIGINTFLOATDOUBLEDECIMAL)、时间类型(如 DATETIMESTAMP)、字符串类型(如 CHARVARCHARSTRING)以及 BINARY 类型。

参数说明

  • expr:可比较的数据类型,包括数值类型、时间类型和字符串类型。

返回结果

  • 返回值类型与输入参数类型相同。
  • 若设置 DISTINCT 关键字,则计算去重后的集合中的最小值,但对结果无影响。
  • NULL 值不参与计算。

使用示例

  1. 从一组数值中找出最小值:
SELECT min(col) FROM VALUES (10), (50), (20), (NULL) AS tab(col);
+------------+
| `min`(col) |
+------------+
| 10         |
+------------+
  1. 从一组时间类型数据中找出最小值:
SELECT min(col) FROM VALUES ('2023-01-01'), ('2022-12-31'), ('2023-02-01') AS tab(col);
+------------+
| `min`(col) |
+------------+
| 2022-12-31 |
+------------+
  1. 从一组字符串类型数据中找出最小值:
SELECT min(col) FROM VALUES ('apple'), ('banana'), ('cherry') AS tab(col);
+------------+
| `min`(col) |
+------------+
| apple      |
+------------+
  1. 使用 DISTINCT 关键字从一组数值中找出最小值(对结果无影响):
SELECT min(DISTINCT col) FROM VALUES (10), (50), (20), (NULL), (10), (20) AS tab(col);
+---------------------+
| `min`(DISTINCT col) |
+---------------------+
| 10                  |
+---------------------+
  1. 使用 FILTER 子句条件性地找出最小值:
SELECT min(col) FILTER (WHERE col > 15) FROM VALUES (10), (20), (50), (NULL) AS tab(col);
+---------------------------------------+
| `min`(col) FILTER (WHERE (col > 15))  |
+---------------------------------------+
| 20                                    |
+---------------------------------------+
  1. 结合 FILTER 子句和 DISTINCT 找出条件最小值:
SELECT min(DISTINCT col) FILTER (WHERE col < 50) FROM VALUES (10), (10), (20), (50) AS tab(col);
+------------------------------------------------------+
| `min`(DISTINCT col) FILTER (WHERE (col < 50))        |
+------------------------------------------------------+
| 10                                                   |
+------------------------------------------------------+

通过以上示例,您可以看到 MIN 函数在不同数据类型中的应用。请注意,NULL 值不参与计算。

联系我们
预约咨询
微信咨询
电话咨询