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: 它指定未封装在聚合函数中且必须包含在表达式中的表达式
 
 
  aggregate_function: 它指定一个函数,例如SUM,COUNT,MIN,MAX或AVG等。表: 它指定表,从您想要的位置开始检索记录。在FROM子句中必须至少列出一个表。
 
 
 conditions: 这是可选的。它指定了要选择的记录必须满足的条件。
 
(i)具有COUNT函数的MySQL GROUP BY子句
 
 请考虑一个名为"军官的表" "表,具有以下记录。 
 
 
 现在,让我们在列地址中计算重复的城市数。 
 
 
 执行以下查询:  
 
 
  
  
SELECT address, COUNT(*)
FROM   officers 
GROUP BY address; 
 
   
  
 
 输出:  
 
 
(ii)具有SUM函数的MySQL GROUP BY子句
 
 让我们使用一个表" employees"表,其中包含以下数据。
 
 
 现在,以下查询将使用SUM函数对示例进行GROUP BY并返回emp_name和每个员工的总工作时间。
 
 
 执行以下查询:  
 
 
  
  
SELECT emp_name, SUM(working_hours) AS "Total working hours"
FROM employees
GROUP BY emp_name;
 
   
  
 
 输出:  
 
 
(iii)具有MIN函数的MySQL GROUP BY子句
 
 以下示例指定了从" employees"表中雇员的最低工作时间。 
 
 
 执行以下查询:  
 
 
  
  
SELECT emp_name, MIN(working_hours) AS "Minimum working hour"
FROM employees
GROUP BY emp_name;
 
   
  
 
 输出:  
 
 
(iv)具有MAX函数的MySQL GROUP BY子句
 
 以下示例指定了从"员工"表中员工的最长工作时间。 
 
 
 执行以下查询:  
 
 
  
  
SELECT emp_name, MAX (working_hours) AS "Minimum working hour"
FROM employees
GROUP BY emp_name;
 
   
  
 
 输出:  
 
 
(v)具有AVG功能的MySQL GROUP BY子句
 
  下面的示例从"雇员"表中指定雇员的平均工作时间。
 
 
 执行以下查询:  
 
 
  
  
SELECT emp_name, AVG(working_hours) AS "Average working hour"
FROM employees
GROUP BY emp_name;
      
   
  
 
 输出:  
 
