注:笔记旨在记录
四、MySQL 聚合函数
\函 数 名 称作 用完 成1MAX求最大值勾2MIN求最小值勾3COUNT求数量勾4BIT_COUNT求换算成二级制后1的个数勾5ROW_COUNTsql操作所影响的行数勾6SUM求和勾7AVG求平均值勾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. 函数:
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
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |