霍格沃兹测试开发

DQL 表查询操作 - 分组

霍格沃兹测试开发学社

ceshiren.com

目录

  • 分组查询语法
  • 实例
  • 子句区别

分组查询语法

  • 分组列:按哪些列进行分组
  • HAVING:对分组结果再次过滤
-- 分组查询
SELECT 分组列/聚合函数 FROM 表名 
GROUP BY 分组列 
[HAVING 条件];

实例

-- 查询每个员工的薪资和
SELECT 
    emp_no, SUM(salary)
FROM
    salaries
GROUP BY emp_no;

-- 查询员工编号小于 10010 的,薪资和小于 400000 的员工的薪资和
SELECT 
    emp_no, SUM(salary)
FROM
    salaries
WHERE
    emp_no < 10010
GROUP BY emp_no
HAVING SUM(salary) < 400000;

子句区别

  • WHERE 子句:从数据源中去掉不符合其搜索条件的数据
  • GROUP BY 子句:搜集数据行到各个组中,统计函数为各个组计算统计值
  • HAVING 子句:去掉不符合其组搜索条件的各行数据行