首页 > 其他 > 详细

分组查询

时间:2020-01-17 01:08:14      阅读:72      评论:0      收藏:0      [点我收藏+]

示例:

select * fromwhere 条件
group by 条件
order by  descasc

特点:

分组查询一般分为 

          数据源    位置      关键字

分组查询之前筛选       原始表  group by前面    where

分组查询之后筛选  结果集  group by后面    having

注意:

group by 分组函数 有些特殊,要求查询出来的字段 必须是分组函数,和group by 之后的字段!!!!

基本简单的分组查询:

        #查询每个工种最高工资
            SELECT
            MAX(salary),job_id
            FROM
            employees
            GROUP BY
            job_id
            #查询每个部门的人数
            SELECT
            COUNT(1),location_id
            FROM departments
            GROUP BY location_id
#分组查询加where,因为涉及的字段都是原始表可以直接使用
            select avg(salary) as 平均工资,job_id 部门 FROM employees
            WHERE email LIKE %a%
          GROUP BY job_id

    #按照lasatName长度分组查询每一组的人数,求出大于5的
            select count(*) as 个数,LENGTH(last_name) cd FROM
            employees GROUP BY cd HAVING 个数 > 5
            #求部门员工的平均工资,总工资 最小工资 和 最大工资
            select job_id,sum(salary) 工资求和,min(salary) 工资最小值,avg(salary) 平均值,max(salary) 工资最大值
            FROM employees
            GROUP BY job_id


    #求某领导手下员工的最少工资,并且求出工资至少等于6000     并且该部门不能为null
                select MIN(salary) FROM employees
                WHERE manager_id is NOT null
                GROUP BY manager_id
                HAVING MIN(salary) >= 6000

 

 

分组前和分组后总结;

  1 使用group by 时候,一定要理清楚 条件是 是分组之前筛选 还是分组之后筛选,要知道使用where 过滤还是having 。。

分组查询

原文:https://www.cnblogs.com/jiaowoxiaofeng/p/12203821.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!