/**
分类:
sum 求和、avg 平均值、max 最大值、min 最小值、count 计算个数
特点:
1、sum、avg 一般用于处理数值型
max、min、count 可以处理任何类型【因为可以 order by last_name(姓名,通过名字的首字母排序),薪水、年龄】
2、以上分组函数都忽略null值(null列的值不会计算)
3、可以和distiinc 搭配 去除的意思
4、count 函数介绍
效率:
MYISAM 存储引擎下, count(*)的效率高
INNODB 存储引擎下,COUNT(*) 和 COUNT(1)的效率差不多,但是比count(字段)效率高,
因为 COUNT(字段)统计的时候,还需要判断
5、和分组函数一同查询的字段要求是 GROUP BY 后面的字段
**/
-- 3、可以和distinc 搭配 去除的意思
-- 第一列统计:有几种年龄类型
-- 第二列:一共有多少列
select COUNT(DISTINCT age),COUNT(age)
from student;
-- 以下效果是一样的
select COUNT(*) from student;
select COUNT(1) from student; -- 解释:就是加了一列,这一列的值都是1,然后统计这列值为1的个数
select COUNT(2) from student;
select COUNT('LMGD') from student;-- 解释:就是加了一列,这一列的值都是 'LMGD',然后统计这列值为 'LMGD'的个数
-- 查询当前时间 和 你出生时间相差多少天
-- 可以使用函数 DATEDIFF(expr1,expr2)
select DATEDIFF(NOW(),'1997-08-25');
-- 查询每个工种有奖金的员工的最高工资>1200的工种编号和最高工资
select MAX(工资),empno
from 表
where 工种 is not null
group by empno
HAVING MAX(工资)>12000