MySQL GROUP BY子句

本文概述

  • 参数
  • (i)具有COUNT函数的MySQL GROUP BY子句
  • (ii)具有SUM功能的MySQL GROUP BY子句
  • (iii)具有MIN功能的MySQL GROUP BY子句
  • (iv)具有MAX功能的MySQL GROUP BY子句
  • (v)具有AVG功能的MySQL GROUP BY子句
MYSQL GROUP BY子句用于从多个记录中收集数据, 并将结果按一个或多个列分组。它通常用于SELECT语句中。
你还可以在分组列上使用一些汇总函数, 例如COUNT, SUM, MIN, MAX, AVG等。
句法:
SELECT expression1, expression2, ... expression_n, aggregate_function (expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n;

参数 expression1, expression2, … expression_n:它指定未封装在聚合函数中且必须包含在GROUP BY子句中的表达式。
gregation_function:它指定一个函数, 例如SUM, COUNT, MIN, MAX或AVG等。表:它指定要从中检索记录的表。在FROM子句中必须至少列出一个表。
条件:它是可选的。它指定了选择记录必须满足的条件。
(i)具有COUNT函数的MySQL GROUP BY子句 考虑一个名为” 军官” 表的表, 该表具有以下记录。
MySQL GROUP BY子句

文章图片
现在, 让我们计算列地址中的重复城市数。
执行以下查询:
SELECT address, COUNT(*) FROMofficers GROUP BY address;

输出
MySQL GROUP BY子句

文章图片
(ii)具有SUM功能的MySQL GROUP BY子句 【MySQL GROUP BY子句】我们来看一个表” employees” 的表, 其中包含以下数据。
MySQL GROUP BY子句

文章图片
现在, 以下查询将使用SUM函数对示例进行GROUP BY并返回emp_name和每个员工的总工作时间。
执行以下查询:
SELECT emp_name, SUM(working_hours) AS "Total working hours" FROM employees GROUP BY emp_name;

输出
MySQL GROUP BY子句

文章图片
(iii)具有MIN功能的MySQL GROUP BY子句 下面的示例从” 雇员” 表中指定雇员的最短工作时间。
执行以下查询:
SELECT emp_name, MIN(working_hours) AS "Minimum working hour" FROM employees GROUP BY emp_name;

输出
MySQL GROUP BY子句

文章图片
(iv)具有MAX功能的MySQL GROUP BY子句 下面的示例从” 员工” 表中指定员工??的最长工作时间。
执行以下查询:
SELECT emp_name, MAX (working_hours) AS "Minimum working hour" FROM employees GROUP BY emp_name;

输出
MySQL GROUP BY子句

文章图片
(v)具有AVG功能的MySQL GROUP BY子句 下面的示例从” 雇员” 表中指定雇员的平均工作时间。
执行以下查询:
SELECT emp_name, AVG(working_hours) AS "Average working hour" FROM employees GROUP BY emp_name;

输出
MySQL GROUP BY子句

文章图片

    推荐阅读