MySQL聚集函数

发布时间:2017-10-31
函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和

products 表名

price 字段

查看所有字段信息, 方便下面查看

mysql> SELECT * FROM products;
+----+-------+----------+
| id | price | username |
+----+-------+----------+
|  1 |   111 | admin    |
|  2 |   222 | admin    |
|  3 |   333 | admin    |
|  4 |   444 | admin    |
|  5 |   111 | admin    |
|  6 |   222 | root     |
|  7 |   222 | xjh      |
|  8 |   333 | lisi     |
+----+-------+----------+

AVG()函数

// 返回所有列的平均值,也可以用来返回特定列或行的平均值
mysql> SELECT AVG(price) FROM products;
+------------+
| AVG(price) |
+------------+
|   249.7500 |
+------------+

COUNT()函数有两种使用方式

// 对表中行的数目进行计数,不管表列中包含的是空值NULL还是非空值
mysql> SELECT COUNT(*) FROM products;
+----------+
| COUNT(*) |
+----------+
|        8 |
+----------+

// 对特定列中具有值的行进行计数,忽略NULL值
mysql> SELECT COUNT(price) FROM products;
+--------------+
| COUNT(price) |
+--------------+
|            8 |
+--------------+

MAX()函数

一般用于查找最大值或日期值

// 返回指定列中最大值,忽略NULL值
mysql> SELECT MAX(price) FROM products;
+------------+
| MAX(price) |
+------------+
|        444 |
+------------+

MIN()函数

// 返回指定列中最小值,其他行为跟MAX()一致
mysql> SELECT MIN(price) FROM products;
+------------+
| MIN(price) |
+------------+
|        111 |
+------------+

SUM()函数

// 返回指定列中总和,忽略NULL值
mysql> SELECT SUM(price) FROM products;
+------------+
| SUM(price) |
+------------+
|       1998 |
+------------+

组合聚集函数

mysql> SELECT COUNT(*),MAX(price) FROM products;
+----------+------------+
| COUNT(*) | MAX(price) |
+----------+------------+
|        8 |        444 |
+----------+------------+

聚集不同值

DISTINCT必须使用列名不能用于计算或表达式,简单点说如果有3个值为10那么他只当做只有一个10

mysql> SELECT MAX(DISTINCT price) FROM products;
+---------------------+
| MAX(DISTINCT price) |
+---------------------+
|                 444 |
+---------------------+

在使用聚集函数时建议配合AS使用,这样可以供客户机使用又能避免不必要的错误

mysql> SELECT MIN(price) AS min_price FROM products;
+-----------+
| min_price |
+-----------+
|       111 |
+-----------+
数据库
广告