MySQL——聚合函式
阿新 • • 發佈:2019-01-08
內建函式和計算
SQL 允許對錶中的資料進行計算。對此,SQL 有 5 個內建函式,這些函式都對 SELECT 的結果進行操作。
函式名 | 作用 |
---|---|
MAX(column) | 返回某列的最低值(有則不會返回NULL,沒有則返回NULL) |
MIN(column) | 返回某列的最高值(沒有則返回NULL) |
COUNT(column) | 返回某列的行數(不包括 NULL 值) |
COUNT(*) | 返回被選列行數(包括NULL) |
SUM(column) | 求和 |
AVG(column) | 求平均值 |
其中 COUNT 函式可用於任何資料型別 (因為它只是計數),而 SUM 、AVG 函式都只能對數字類資料型別做計算,MAX 和 MIN 可用於數值、字串或是日期時間資料型別。
1、MAX()
尋找列的最大值 mysql> SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee; +------------+-------------+ | max_salary | MIN(salary) | +------------+-------------+ | 3600 | 2500 | +------------+-------------+ 1 row in set (0.00 sec) # 使用 AS 關鍵詞可以給值重新命名 查詢某列最大值所在的行 mysql> SELECT name, salary, in_dpt -> FROM employee -> WHERE salary=(SELECT MAX(salary) FROM employee); +------+--------+--------+ | name | salary | in_dpt | +------+--------+--------+ | Joe | 3600 | dpt2 | | Jobs | 3600 | dpt2 | +------+--------+--------+ 2 rows in set (0.00 sec) # 或使用@cus_name:= mysql> select @agest:=max(age) from employee; +------------------+ | @agest:=max(age) | +------------------+ | 35 | +------------------+ 1 row in set (0.00 sec)
2、COUNT()
mysql> select count(age) from employee;
+------------+
| count(age) |
+------------+
| 10 |
+------------+
1 row in set (0.00 sec)
3、SUM()
mysql> select sum(salary) from employee; +-------------+ | sum(salary) | +-------------+ | 37800 | +-------------+ 1 row in set (0.00 sec) # 只能對數字類資料型別做計算 mysql> select sum(name) from employee; +-----------+ | sum(name) | +-----------+ | 0 | +-----------+ 1 row in set, 12 warnings (0.00 sec)
4、AVG()
mysql> select avg(salary) from employee;
+-------------+
| avg(salary) |
+-------------+
| 3150.0000 |
+-------------+
1 row in set (0.00 sec)