註:筆記旨在記錄 四、MySQL 聚合函數 | \ | 函 數 名 稱 | 作 用 | 完 成 | |: :|: |: |: :| | 1 | MAX | 求最大值 | 勾 | | 2 | MIN | 求最小值 | 勾 | | 3 | COUNT | 求數量 | 勾 | | 4 | BIT_COUN ...
註:筆記旨在記錄
四、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