zoukankan      html  css  js  c++  java
  • SQL学习笔记6——SQL中检索数据之分组查询

    SQL学习笔记6——SQL中检索数据之分组查询

    语法

    select 分组函数,分组后的字段
    from 表
    [where 分组前的筛选]
    group by 分组的字段
    [having 分组后的筛选]
    [order by 排序列表]
    

    注意:查询列表必须特殊,要求是分组函数和group by后出现的字段

    案例

    • 查询每个工种的最高工资
      SELECT MAX(salary),job_id
      FROM employees
      GROUP BY job_id;
      
    • 查询邮箱中包含a字符的每个部门的平均工资
      SELECT AVG(salary),department_id
      FROM employees
      WHERE email LIKE '%a%'
      GROUP BY department_id;
      
    • 查询哪个部门的员工个数>2
      SELECT COUNT(*),department_id
      FROM employees
      GROUP BY department_id
      HAVING COUNT(*)>2;
      
    • 查询每个部门每个工种的员工的平均工资
      SELECT AVG(salary),department_id,job_id
      FROM employees
      GROUP BY job_id,department_id
      /*
      这里GROUP BY后面字段的顺序不影响结果
      */
      

    特点

    使用关键字 筛选的表 位置
    分组前筛选 where 原始表 group by的前面
    分组后筛选 having 分组后的结果 group by的后面
    • 分组函数做条件,肯定是放在having子句中
    • 能用分组前筛选的优先考虑分组前筛选
    • 可以用表达式、函数、别名进行分组
    • 可以按多个字段分组,多个字段之间用逗号隔开,没有顺序要求
    • 也可以添加排序,排序放在整个分组查询的最后
  • 相关阅读:
    P3383 【模板】线性筛素数
    POJ2431-Expedition【优先队列+贪心】
    HDU1087
    HDU1029
    最小生成树之Kruskal算法
    AC自动机模板
    328闯关解析
    php可获取客户端信息
    $( ).focus()与$( )[0].focus()区别
    RegExp类型和text()方法
  • 原文地址:https://www.cnblogs.com/sanmujun/p/12632809.html
Copyright © 2011-2022 走看看