按照部门或者职位进行分组统计

上一篇我们学习了如何利用 SQL 聚合函数对数据进行汇总分析。聚合函数在单独使用时,会将所有的数据作为一个整体(分组)进行统计;因此上一篇中的示例都只返回了一个结果。

但是在实际应用中,我们通常需要将数据按照某些规则进行分组,然后分别进行汇总统计。例如,按照部门计算员工的平均月薪,按照不同的产品和渠道统计销售金额等。为了实现这种分组统计的功能,需要将聚合函数与分组操作(GROUP BY)一起使用。

数据分组

SQL 中的 GROUP BY 子句可以将数据按照某种规则进行分组。以下示例使用 GROUP BY 将员工按照性别进行分组:

SELECT sex
  FROM employee
 GROUP BY sex;

 sex|
----|
男  |
女  |

GROUP BY 将性别的每个不同取值分为一组,每个组返回一条记录。由于员工表中只存在两种不同的性别,返回的结果只有两条记录。该语句与下面 DISTINCT 关键字的效果相同:

SELECT DISTINCT sex
  FROM employee;

 sex|
----|
男  |
女  |

DISTINCT 表示返回不重复的结果,也就是两种不同的性别。

多字段分组

GROUP BY 也可以基于多个字段或表达式进行分组。以下语句按照部门和性别的组合进行分组:

SELECT dept_id, sex
  FROM employee
 GROUP BY dept_id, sex;

dept_id| sex|
-------|----|
      1|男  |
      2|男  |
      3|女  |
      4|男  |
      4|女  |
      5|男  

猜你喜欢

转载自blog.csdn.net/horses/article/details/108729105