#分组函数(多行处理函数)
#多行处理函数的特点,输入多行,最终输出一行。
/** 5个
count 技术
sum 求和
avg 平均数
max 最大值
min 最小值
注意:分组函数在使用的时候必须先进行分组,然后才能使用。
如果你没有对数据进行分组,整张表,默认为一组。
*/
#找出最高工资
SELECT MAX(sal) FROM emp;
#找出最低工资
SELECT MIN(sal) FROM emp;
#计算工资和:
SELECT SUM(sal) FROM emp;
#计算平均工资
SELECT AVG(sal) FROM emp;
#统计数量
SELECT COUNT(ename) FROM emp;
#分组函数在使用的时候需要注意哪些?
#第一点:分组函数自动忽略NULL
SELECT SUM(comm) from emp; #自动忽略 NULL
SELECT avg(comm) from emp;
#第二点:分组函数中count(*)和count(具体字段)有什么区别?
SELECT COUNT(*) from emp;
SELECT COUNT(comm) from emp;
#COUNT(具体字母):表示统计该字母所有不为null的元素的总数
#COUNT(*):统计表当中的总行数(只要有一行数据,count则++) 因为每一行记录不可能都为NULL,一行数据中有一列不为NULL,则这行数据就是有效的
#第三点:分组函数不能直接使用在where字句中。
#找出比最低工资高的员工信息
SELECT ename,sal FROM emp WHERE sal > MIN(sal);
#表面上没问题 运行会报错 1111 - Invalid use of group function
#第四点:所有的分组函数可以组合起来一起用。
SELECT sum(sal),min(sal),max(sal),count(sal),avg(sal) FROM emp;