注:笔记旨在记录
四、MySQL 聚合函数
\ | 函 数 名 称 | 作 用 | 完 成 |
---|---|---|---|
1 | MAX |
求最大值 | 勾 |
2 | MIN |
求最小值 | 勾 |
3 | COUNT |
求数量 | 勾 |
4 | BIT_COUNT |
求换算成二级制后1的个数 | 勾 |
5 | ROW_COUNT |
sql操作所影响的行数 | 勾 |
6 | SUM |
求和 | 勾 |
7 | AVG |
求平均值 | 勾 |
0.表
0.1 num表:
CREATE TABLE `anyot`.`Untitled` (
`id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`rand_int_num` int NULL DEFAULT NULL,
`rand_decimal_num` decimal(65, 2) NULL DEFAULT NULL,
`rand_string_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
1. MAX() -- 求最大值
1.1. 函数:
MAX(int)、MAX(decimal)、MAX(str)
: 求最大值
注:
int
,decimal
,string
等等都可以求,字符串按ASCII大小来求
1.2. sql示例:
SELECT
MAX(rand_int_num),MAX(rand_decimal_num),MAX(rand_string_num)
FROM num
2. MIN() -- 求最小值
2.1. 函数:
MAX(int)、MAX(decimal)、MAX(str)
: 求最小值
2.2. sql示例:
SELECT
MIN(rand_int_num),MIN(rand_decimal_num),MIN(rand_string_num)
FROM num
3. COUNT() -- 求总数
3.1. 函数:
COUNT(*)、COUNT(exp)
: 求表总数据数或是某个字段的数据数
注: exp表字段名,此时计算值会自动忽略null值的数据
3.2. sql示例:
SELECT
COUNT(*),COUNT(rand_int_num),COUNT(rand_decimal_num)
FROM num
4. BIT_COUNT() -- 求1个数
4.1. 函数:
BIT_COUNT()
: 计算换算成二级制后其中1的个数
4.2. sql示例:
SELECT
rand_int_num,BIT_COUNT(rand_int_num),rand_decimal_num,BIT_COUNT(rand_decimal_num)
FROM num
5. ROW_COUNT() -- 求操作的行数
5.1. 函数:
LEFT(str,len)
: 取字符串从左往右的若干各字符
5.2. sql示例:
UPDATE
num set rand_int_num = "21",rand_decimal_num = "32"
where id ="7";
SELECT ROW_COUNT();
注:要连在sql操作后用,返回值为-1表示前无操作
6. SUM() -- 求和
6.1. 函数:
SUM(epx)
:求某字段所有值的和,自动忽略null值和非数值型的值
6.2. sql示例:
SELECT
SUM(rand_int_num),SUM(rand_decimal_num),SUM(rand_string_num)
FROM num
注:特别注意字符串小数计算时,要设置精度,不然结果可能会不对,主要是浮点数计算的问题
7. AVG -- 求平均值
7.1. 函数:
AVG(epx)
: 求某一字段的平均值
7.2. sql示例:
SELECT
SUM(rand_int_num)/count(rand_int_num),AVG(rand_int_num),AVG(rand_decimal_num),AVG(rand_string_num)
FROM num
文章评论