转载自  MySQL min()函数

MySQL MIN函数

MIN()函数返回一组值中的最小值。MIN()函数在某些情况下非常有用,例如找到最小的数字,选择最便宜的产品,获得最低的信用额度等。

以下说明MIN()函数的语法:

MIN(DISTINCT expression);

如果指定DISTINCT运算符,则MIN函数返回不同值的最小值,与省略DISTINCT相同。换句话说,DISTINCT运算符对MIN函数没有任何影响,它只是为了ISO兼容性。

请注意,DISTINCT运算符在其他聚合函数(如SUM,AVG和COUNT)中生效。

MySQL MIN函数示例

我们来看看示例数据库(yiibaidb)中的products表,其结构如下表所示 -

mysql> desc products;
+--------------------+---------------+------+-----+---------+------------------+
| Field              | Type          | Null | Key | Default | Extra            |
+--------------------+---------------+------+-----+---------+------------------+
| productCode        | varchar(15)   | NO   | PRI |         |                  |
| productName        | varchar(70)   | NO   | MUL | NULL    |                  |
| productLine        | varchar(50)   | NO   | MUL | NULL    |                  |
| productScale       | varchar(10)   | NO   |     | NULL    |                  |
| productVendor      | varchar(50)   | NO   |     | NULL    |                  |
| productDescription | text          | NO   |     | NULL    |                  |
| quantityInStock    | smallint(6)   | NO   |     | NULL    |                  |
| buyPrice           | decimal(10,2) | NO   |     | NULL    |                  |
| MSRP               | decimal(10,2) | NO   |     | NULL    |                  |
| stockValue         | double        | YES  |     | NULL    | STORED GENERATED |
+--------------------+---------------+------+-----+---------+------------------+
10 rows in set

要查询获得products表中最便宜的产品,请使用以下查询:

SELECT MIN(buyPrice)
FROMproducts;

执行上面查询语句,得到以下结果

mysql> SELECT MIN(buyPrice)
FROMproducts;
+---------------+
| MIN(buyPrice) |
+---------------+
| 15.91         |
+---------------+
1 row in set

MySQL MIN与子查询

要不仅选择价格,还要查询产品代码和产品名称等其他产品信息,可以在子查询中使用MIN函数,如下所示:

SELECT productCode, productName, buyPrice
FROMproducts
WHEREbuyPrice = (SELECT MIN(buyPrice)FROMproducts);

执行上面查询语句,得到以下结果 -

+-------------+-------------------------------------+----------+
| productCode | productName                         | buyPrice |
+-------------+-------------------------------------+----------+
| S24_2840    | 1958 Chevy Corvette Limited Edition | 15.91    |
+-------------+-------------------------------------+----------+
1 row in set

上面语句怎么运行?

  • 子查询返回products表中最低的价格产品。
  • 外部查询查询价格等于从子查询返回的最低价格的商品。

MySQL MIN与GROUP BY

当您将MIN函数与SELECT语句中的GROUP BY子句相结合使用时,可以获取每个组的最小值。

例如,要查询每个产品线的最低价格产品,请使用以下语句:

SELECT productline, MIN(buyprice)
FROMproducts
GROUP BY productline;

执行上面查询语句,得到以下结果 -

mysql> SELECT productline, MIN(buyprice)
FROMproducts
GROUP BY productline;
+------------------+---------------+
| productline      | MIN(buyprice) |
+------------------+---------------+
| Classic Cars     | 15.91         |
| Motorcycles      | 24.14         |
| Planes           | 29.34         |
| Ships            | 33.3          |
| Trains           | 26.72         |
| Trucks and Buses | 24.92         |
| Vintage Cars     | 20.61         |
+------------------+---------------+
7 rows in set

如果您不仅要选择产品线,还要查询products表中的其他列,例如产品代码和产品名称,则需要使用相关的子查询。

MySQL MIN与相关子查询

以下查询通过将MIN()函数与相关子查询相结合来查询每个产品线中的最低价格产品:

SELECT productline, productCode, productName, buyprice
FROMproducts a
WHEREbuyprice = (SELECT MIN(buyprice)FROMproducts bWHEREb.productline = a.productline);

执行上面查询语句,得到以下结果 -

+------------------+-------------+-------------------------------------------+----------+
| productline      | productCode | productName                               | buyprice |
+------------------+-------------+-------------------------------------------+----------+
| Trucks and Buses | S18_2432    | 1926 Ford Fire Engine                     | 24.92    |
| Vintage Cars     | S24_2022    | 1938 Cadillac V-16 Presidential Limousine | 20.61    |
| Classic Cars     | S24_2840    | 1958 Chevy Corvette Limited Edition       | 15.91    |
| Planes           | S24_3949    | Corsair F4U ( Bird Cage)                  | 29.34    |
| Motorcycles      | S32_2206    | 1982 Ducati 996 R                         | 24.14    |
| Trains           | S32_3207    | 1950s Chicago Surface Lines Streetcar    | 26.72    |
| Ships            | S72_3212    | Pont Yacht                                | 33.3     |
+------------------+-------------+-------------------------------------------+----------+
7 rows in set

对于来自外部查询的每个产品线,相关子查询选择产品线中的最低价格产品并返回最低价格。 然后将返回的最低价格用作外部查询的输入,以选择相关产品数据,包括产品线,产品代码,产品名称和价格。

如果要在不使用MIN函数和子查询的情况下实现相同的结果,则可以使用带有LEFT JOIN子句的自联接,如下查询语句:

SELECT a.productline, a.productCode, a.productName, a.buyprice
FROMproducts aLEFT JOINproducts b ON a.productline = b.productlineAND b.buyprice < a.buyprice
WHEREb.productcode IS NULL;

执行上面查询语句,得到以下结果 -

+------------------+-------------+-------------------------------------------+----------+
| productline      | productCode | productName                               | buyprice |
+------------------+-------------+-------------------------------------------+----------+
| Trucks and Buses | S18_2432    | 1926 Ford Fire Engine                     | 24.92    |
| Vintage Cars     | S24_2022    | 1938 Cadillac V-16 Presidential Limousine | 20.61    |
| Classic Cars     | S24_2840    | 1958 Chevy Corvette Limited Edition       | 15.91    |
| Planes           | S24_3949    | Corsair F4U ( Bird Cage)                  | 29.34    |
| Motorcycles      | S32_2206    | 1982 Ducati 996 R                         | 24.14    |
| Trains           | S32_3207    | 1950's Chicago Surface Lines Streetcar    | 26.72    |
| Ships            | S72_3212    | Pont Yacht                                | 33.3     |
+------------------+-------------+-------------------------------------------+----------+
7 rows in set

在本教程中,您已经学习了如何使用MySQL MIN函数来查找一组值中的最小值。

MySQL min()函数相关推荐

  1. mysql min函数 结果全为null_MySQL ----- 聚集函数(AVG,SUM,COUNT,MIN,MAX) (十一)

    为了汇总数据而不把实际的检索出来,MySQL 提供了专门的函数,聚集函数 好处:可以将检索数据进行分析和报表生成 一.聚集函数(aggregate function): 运行在行组上,计算和返回单个值 ...

  2. mysql 聚合函数求平均数_MySQL教程63-MySQL 聚合函数

    MAX函数:查询指定列的最大值 MySQL MAX() 函数是用来返回指定列中的最大值. 为了方便理解,首先创建一个学生成绩表 tb_students_score,学生成绩表的数据内容如下所示. my ...

  3. mysql的min函数的使用方法_MySQL中MIN()函数的使用教程

    MySQL的MIN函数是用来找出一个记录集最小值的记录. 要了解MIN函数考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...

  4. mysql min怎么用_MySQL中MIN()函数的使用教程

    MySQL的MIN函数是用来找出一个记录集最小值的记录. 要了解MIN函数考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...

  5. mysql的min函数的使用方法_MySQL中MIN()函数的使用教程_MySQL

    MySQL的MIN函数是用来找出一个记录集最小值的记录. 要了解MIN函数考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...

  6. mysql max()函数和min函数

    MAX()返回指定列的最大值.MAX要求指定列名. 对非数值数据使用MAX():虽然max()一般用来找出最大的数值或日期值,但mysql允许将它用来返回任意列中的最大值,包括返回文本列中的最大值.在 ...

  7. mysql算法函数_mysql中的函数总结

    mysql中常用日期时间函数 MySQL服务器中的三种时区设置: ①系统时区---保存在系统变量system_time_zone ②服务器时区---保存在全局系统变量global.time_zone ...

  8. mysql聚合函数count用法_MySQL中聚合函数count的使用和性能优化技巧

    本文的环境是Windows 10,MySQL版本是5.7.12-log 一. 基本使用 count的基本作用是有两个: 统计某个列的数据的数量: 统计结果集的行数: 用来获取满足条件的数据的数量.但是 ...

  9. mysql 聚合函数内比较运算符_关于常用 MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结...

    /* 关于MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结,*/ -- 1 运算符优先级  /* 12.1.1. 操作符优先级 以下列表显示了操作符优先级的由低到高的顺序.排列在同一行的操作符 ...

最新文章

  1. apple id无法创建_我们如何使用Apple的学习框架来创建我们的第一个应用程序
  2. 浪潮小机装oracle数据库,浪潮ERP系统oracle双机热备安装文档 | 浪潮888博客
  3. Windows Phone 7 隔离存储空间“.NET研究”资源管理器
  4. bash循环控制语句之for循环
  5. 关于安卓Apk反编译 再编译回来不能正常安装的问题
  6. 使用LinkedList模拟一个堆栈或者队列数据结构
  7. android+引用非+android+工程,[非原创]编译android C++工程找不到exception handle的解决办法...
  8. java动态数组的实现的_基于Java的动态数组分析与实现
  9. python简单的购物程序代码-Python实现购物程序思路及代码
  10. 计算机二级C选择题精华
  11. 正式学习python的第0天
  12. AutoLayout 的一些坑
  13. 高性能的服务器的架设
  14. 十大开源游戏引擎深入比较之美
  15. 超好玩的msn自制动画头像
  16. 聊聊新西兰的工作和生活
  17. 黄一老师讲述贷款“黑名单”小心别上了黑名单!
  18. SpringBoot 使用异常自定义错误码
  19. 【IOI2000】 邮局
  20. 利用Python实现人脸识别,制作天网系统

热门文章

  1. leedcode344. 反转字符串
  2. C++ 详解拷贝构造函数
  3. 高等数学下-赵立军-北京大学出版社-题解-练习11.2
  4. 数据结构与算法--解决问题的方法- 二叉树的的镜像
  5. 华为任职资格_看了华为的任职资格体系,你就明白员工为啥这么拼?
  6. tensorflow atrous convoltion
  7. solverstate的使用
  8. AtCoder Regular Contest 064
  9. 2016-2017 Central Europe Regional Contest Hangar Hurdles 克鲁斯卡尔重构树 + 建图
  10. CodeCraft-21 and Codeforces Round #711 (Div. 2) D. Bananas in a Microwave 优化暴力