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子句中
    • 能用分组前筛选的优先考虑分组前筛选
    • 可以用表达式、函数、别名进行分组
    • 可以按多个字段分组,多个字段之间用逗号隔开,没有顺序要求
    • 也可以添加排序,排序放在整个分组查询的最后
  • 相关阅读:
    单例模式的奇幻漂流
    webmin安装简介
    Linux下添加磁盘创建lvm分区
    教训 Mac下装windows系统 失败后 磁盘空间丢失
    Mac下安装 php+nginx+mysql 开发环境
    记一次 nginx 504 Gateway Time-out
    twemproxy 安装
    centos6.7下 编译安装MySQL5.7
    vagrant 配置文件简析
    VNC配置连接远程服务器桌面-linuxwindows
  • 原文地址:https://www.cnblogs.com/sanmujun/p/12632809.html
Copyright © 2011-2022 走看看