【和分组函数一同查询的函数要求是group by 后的字段】
select datediff('2017-10-1','2017-9-29');
日期相减函数,前面减后面,结果为2
分组查询:
语法:
select 分组函数,列(要求出现在group by 的后面) from 表 【where 筛选条件】 group by 分组的列表 【order by子句】
注意: 查询列表必须特殊,要求是分组函数和group by 后出现的字段
例子:查询每个工种的最高工资
select max(salary),job_id from employees group by job_id;
例子:查询哪个部门的员工个数>2
select count(*) ,department_id from employees group by department_id having count(*)>2;
由于员工个数count()不在表中,所以不能把count()放在where 后面,要放在末尾关键字having后面;
分组前筛选 原始表【数据源】 group by 子句的前面【位置 】 where【关键字】
分组后筛选 分组后的结果表【数据源】 group by 子句的后面【位置 】 having【关键字】
【分组函数做条件肯定放在having子句中】
连接查询:当查询的字段来自多个表时,就会用到连接查询
例子:select name,boyName from boys,beauty where beauty.boyfriend_id=boy.id;