AVG()
求数值列的平均值。
具体计算过程:其通过对表中行数计数并计算特定数值列的列值之和,求得该列的平均值。
语法:
SELECT AVG(`column_name`)
FROM `table_name`;
当参数 column_name
列中的数据均为空时,结果会返回 NULL。
MAX()
返回指定列中的最大值。
语法:
SELECT MAX(`column_name`)
FROM `table_name`;
当参数 column_name
列中的数据均为空时,结果会返回 NULL。
MIN()
返回指定列中的最小值。
语法
SELECT MIN(`column_name`)
FROM `table_name`;
当参数 column_name
列中的数据均为空时,结果会返回 NULL。
SUM()
统计数值列的总数并返回其值。
语法
SELECT SUM(`column_name`)
FROM `table_name`;
当参数 column_name
列中的数据均为空时,结果会返回 NULL。
ROUND()
将数值字段舍入为指定的小数位数。
语法
SELECT ROUND(`column_name`, `decimals`)
FROM `table_name`;
其中:
- column_name 为要舍入的字段
- decimals (可选):规定要返回的小数位数,不指定时保留四舍五入后的整数。当 decimals 为正数时,column_name 四舍五入为 decimals 所指定的小数位数。当 decimals 为负数时,column_name 则按 decimals 所指定的在小数点的左边四舍五入。
示例:
- ROUND( X ):返回参数 X 四舍五入后的一个整数。
<1>
mysql> SELECT ROUND(-1.49);
+--------------+
| ROUND(-1.49) |
+--------------+
| -1 |
+--------------+
- ROUND(X, D): 返回参数 X 四舍五入且保留 D 位小数后的一个数字。
<1>
mysql> SELECT ROUND(1.388, 2);
+-----------------+
| ROUND(1.388, 1) |
+-----------------+
| 1.39 |
+-----------------+
ISNULL()
判断字段是否为 NULL,根据column_name
列中的字段是否为 NULL 值返回 0 或 1。
语法
SELECT ISNULL(`column_name`)
FROM `table_name`;
IFNULL()
检查一个表达式是否为 NULL,如果是 NULL,则返回指定的替代值;如果不是 NULL,则返回原始表达式的值。
语法
SELECT IFNULL(`column_name`, `value`)
FROM `table_name`;
其中:
- 如果
column_name
列中的某个字段是 NULL 则返回 value 值,不是则返回原来内容。
COALESCE(column_name, value)
函数也用于判断字段是否为NULL,其用法和 IFNULL()
相同。
COUNT()
COUNT() 函数用于计数,可利用其确定表中行的数目或者符合特定条件的行的数目。当COUNT() 中的参数不同时,其的用途也是有明显的不同的,主要可分为以下三种情况:
- COUNT(column_name): 用于计算表中指定列的非空值的数量。
- COUNT(*) :用于计算表中所有行的数量,包括空值和非空值。
- COUNT(DISTINCT column_name) :用于计算表中指定列的不同值的数量。
❗ 注意: COUNT(column_name) 与 COUNT(*) 的区别
COUNT(column_name) 中,如果
column_name
字段中的值为 NULL,则计数不会增加,而如果字段值为空字符串""
,则字段值会加 1COUNT(*) 中,除非整个记录全为 NULL,则计数不会增加,如果存在某一个记录不为 NULL,或者为空字符串"",计数值都会加 1。