【数据库】MySql分组查询详解-GROUP BY

GROUP BY 是 SQL 中用于将结果集按一个或多个列进行分组,以便可以对每个分组执行聚合函数(如 COUNT(), SUM(), AVG(), MAX(), MIN() 等)的语句。在 GROUP BY 子句后面列出的列将作为分组的基础。

语法:

SELECT column1, column2, aggregate_function(column3)  
FROM table_name  
WHERE condition  
GROUP BY column1, column2  
ORDER BY column1, column2;

详细说明:

  1. SELECT 语句:在这里,你可以指定你想从数据库表中检索的列。你还可以在 SELECT 语句中使用聚合函数,对这些列执行计算。

  2. FROM 子句:它指定了要从中检索数据的表或视图。

  3. WHERE 子句(可选):你可以使用 WHERE 子句来过滤结果集,只包括满足指定条件的记录。

  4. GROUP BY 子句:这是将结果集进行分组的关键部分。你需要在 GROUP BY 后面列出你想按其进行分组的列。

  5. ORDER BY 子句(可选):你可以使用 ORDER BY 子句对结果集进行排序。你可以指定多个列进行排序,每个列之间用逗号分隔。

举例:

假设我们有一个名为 employees 的表,其中包含员工的以下信息:

  • id: 员工的唯一标识符

  • name: 员工的名字

  • department: 员工所在的部门

  • salary: 员工的薪水

现在,如果我们想找出每个部门的员工数量和总薪水,我们可以使用 GROUP BY 查询,如下所示:

SELECT department, COUNT(*) AS number_of_employees, SUM(salary) AS total_salary  
FROM employees  
GROUP BY department;

在这个查询中:

  • 我们选择了 department 列,并使用 COUNT(*)SUM(salary) 聚合函数来计算每个部门的员工数量和总薪水。

  • 使用 GROUP BY department 将结果集按 department 列进行分组。这意味着,对于表中的每个不同的部门值,我们将得到一行结果,其中包含该部门的员工数量和总薪水。

这样,将得到一个按部门分组的员工数量和总薪水的列表。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值