MySQL min()函数
转载自 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()函数相关推荐
- mysql min函数 结果全为null_MySQL ----- 聚集函数(AVG,SUM,COUNT,MIN,MAX) (十一)
为了汇总数据而不把实际的检索出来,MySQL 提供了专门的函数,聚集函数 好处:可以将检索数据进行分析和报表生成 一.聚集函数(aggregate function): 运行在行组上,计算和返回单个值 ...
- mysql 聚合函数求平均数_MySQL教程63-MySQL 聚合函数
MAX函数:查询指定列的最大值 MySQL MAX() 函数是用来返回指定列中的最大值. 为了方便理解,首先创建一个学生成绩表 tb_students_score,学生成绩表的数据内容如下所示. my ...
- mysql的min函数的使用方法_MySQL中MIN()函数的使用教程
MySQL的MIN函数是用来找出一个记录集最小值的记录. 要了解MIN函数考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...
- mysql min怎么用_MySQL中MIN()函数的使用教程
MySQL的MIN函数是用来找出一个记录集最小值的记录. 要了解MIN函数考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...
- mysql的min函数的使用方法_MySQL中MIN()函数的使用教程_MySQL
MySQL的MIN函数是用来找出一个记录集最小值的记录. 要了解MIN函数考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...
- mysql max()函数和min函数
MAX()返回指定列的最大值.MAX要求指定列名. 对非数值数据使用MAX():虽然max()一般用来找出最大的数值或日期值,但mysql允许将它用来返回任意列中的最大值,包括返回文本列中的最大值.在 ...
- mysql算法函数_mysql中的函数总结
mysql中常用日期时间函数 MySQL服务器中的三种时区设置: ①系统时区---保存在系统变量system_time_zone ②服务器时区---保存在全局系统变量global.time_zone ...
- mysql聚合函数count用法_MySQL中聚合函数count的使用和性能优化技巧
本文的环境是Windows 10,MySQL版本是5.7.12-log 一. 基本使用 count的基本作用是有两个: 统计某个列的数据的数量: 统计结果集的行数: 用来获取满足条件的数据的数量.但是 ...
- mysql 聚合函数内比较运算符_关于常用 MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结...
/* 关于MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结,*/ -- 1 运算符优先级 /* 12.1.1. 操作符优先级 以下列表显示了操作符优先级的由低到高的顺序.排列在同一行的操作符 ...
最新文章
- apple id无法创建_我们如何使用Apple的学习框架来创建我们的第一个应用程序
- 浪潮小机装oracle数据库,浪潮ERP系统oracle双机热备安装文档 | 浪潮888博客
- Windows Phone 7 隔离存储空间“.NET研究”资源管理器
- bash循环控制语句之for循环
- 关于安卓Apk反编译 再编译回来不能正常安装的问题
- 使用LinkedList模拟一个堆栈或者队列数据结构
- android+引用非+android+工程,[非原创]编译android C++工程找不到exception handle的解决办法...
- java动态数组的实现的_基于Java的动态数组分析与实现
- python简单的购物程序代码-Python实现购物程序思路及代码
- 计算机二级C选择题精华
- 正式学习python的第0天
- AutoLayout 的一些坑
- 高性能的服务器的架设
- 十大开源游戏引擎深入比较之美
- 超好玩的msn自制动画头像
- 聊聊新西兰的工作和生活
- 黄一老师讲述贷款“黑名单”小心别上了黑名单!
- SpringBoot 使用异常自定义错误码
- 【IOI2000】 邮局
- 利用Python实现人脸识别,制作天网系统
热门文章
- leedcode344. 反转字符串
- C++ 详解拷贝构造函数
- 高等数学下-赵立军-北京大学出版社-题解-练习11.2
- 数据结构与算法--解决问题的方法- 二叉树的的镜像
- 华为任职资格_看了华为的任职资格体系,你就明白员工为啥这么拼?
- tensorflow atrous convoltion
- solverstate的使用
- AtCoder Regular Contest 064
- 2016-2017 Central Europe Regional Contest Hangar Hurdles 克鲁斯卡尔重构树 + 建图
- CodeCraft-21 and Codeforces Round #711 (Div. 2) D. Bananas in a Microwave 优化暴力