MySQL database operation aggregate function

What is an aggregate function?

Aggregate functions are widely used in data query and analysis. Aggregate functions can
sum data, find maximum and minimum values, average values, and so on.

求公司员工的平均月收入是多少?
SELECT AVG(sal+IFNULL(comm,0)) FROM t_emp;

SUM function:

SUM函数用于求和,只能用于数字类型,字符类型的统计结果为0,日期类型统计结果是毫秒数相加。
SELECT SUM(ename) FROM t_emp;
SELECT SUM(sal) FROM t_emp WHERE deptno IN (10,20);
SUM函数求和会排除NULLSELECT SUM(comm) FROM t_emp;

MAX function:

MAX函数用于获得非空值的最大值。
SELECT MAX (comm) FROM t_emp;
问题1:查询1020部门中,月收入最高的员工?
SELECT MAX (sal + IFNULL(comm,0)) FROM t_emp WHERE deptno IN(10,20);
问题2:查询员工名字最长的是几个字符?
SELECT MAX (LENGTH(ename)) FROM t_emp;

MIN function:

MIN函数用于获得非空值的最小值。
SELECT MIN (empno) FROM t_emp;
SELECT MIN (hiredate) FROM t_emp;

AVG function:

AVG函数用于获得非空值的平均值,非数字数据统计结果为0
SELECT AVG (sal + IFNULL (comm,0)) FROM t_emp;
SELECT AVG (ename) FROM t_emp;

COUNT function:

COUNT(*)用于获得包含空值的记录数,COUNT(列名)用于获得包
含非空值的记录数。
SELECT COUNT(*) FROM t_emp;
SELECT COUNT (comm) FROM t_emp;
查询1020部门中,底薪超过2000元并且工龄超过15年的员工人数?
SELECT COUNT(*) FROM t_emp
WHERE deptno IN(10, 20) AND sal>=2000
AND DATEDIFE (NOW() , hiredate) /365>=15;
查询1985年以后入职的员工,底薪超过公司平均底薪的员工数量?
SELECT COUNT(*) FROM t_emp
WHERE hiredate>="1985-01-01"
AND sal>AVG(sal);

Guess you like

Origin blog.csdn.net/Turniper/article/details/108617279