1.单表查询

  having:二次筛选,having后面的字段只能是分组(group by)之后字段 

1.查询各岗位内包含的员工个数小于2的岗位名、岗位内包含员工名字、个数
select post,group_concat(name),count(1) from employee group by post having count(1) < 2;

2. 查询各岗位平均薪资大于10000的岗位名、平均工资
select * from employee where salary  not in (select avg(salary) as A from employee group by post having A > 10000);
                select post,avg(salary) as A from employee group by post having A > 10000
                
3. 查询各岗位平均薪资大于10000且小于20000的岗位名、平均工资
select post,avg(salary) from employee group by post having avg(salary) between 10000 and 20000;
            order by
                asc 升序
                desc 降序
                
            limit 0,5 第一个参数起始位置,第二个参数显示的个数
例子

相关文章: