首页 > 数据库 >软件测试|MySQL中的GROUP BY分组查询,你会了吗?

软件测试|MySQL中的GROUP BY分组查询,你会了吗?

时间:2023-11-15 17:34:48浏览次数:113  
标签:GROUP 函数 使用 查询 分组 MySQL 软件测试

MySQL中的GROUP BY分组查询:详解与示例

在MySQL数据库中,GROUP BY语句用于将数据按照指定的列进行分组,并对每个分组执行聚合函数操作。这就是的我们可以在查询中汇总数据并生成有意义的结果。本文将深入介绍MySQL中的GROUP BY语句,并提供示例来说明其用法。

基本语法

在 MySQL 中,GROUP BY 关键字可以根据一个或多个字段对查询结果进行分组。

使用 GROUP BY 关键字的语法格式如下:

SELECT 列1, 列2, 聚合函数(列3)
FROM 表名
GROUP BY 列1, 列2;

在上述语法中,我们需要指定要选择的列(除了聚合函数所用的列)。然后使用GROUP BY将结果按照指定的列进行分组。最后,您可以使用聚合函数(如SUM、COUNT、AVG等)对每个分组进行操作。

使用示例

  1. 订单总额按客户分组

假设我们有一个订单表orders,包含customer_idorder_dateorder_amount等列。我们想要按照客户分组,计算每个客户的订单总额,语句如下:

SELECT customer_id, SUM(order_amount) AS total_amount
FROM orders
GROUP BY customer_id;

在上述查询中,我们选择了customer_id列,并使用SUM()函数计算每个客户的订单总额。然后使用GROUP BY将结果按照customer_id分组。

  1. 按月份统计销售数量

假设我们有一个销售表sales,包含sale_datequantity列。我们想要按照每个月份统计销售的总数量,语句如下:

SELECT DATE_FORMAT(sale_date, '%Y-%m') AS month, SUM(quantity) AS total_quantity
FROM sales
GROUP BY month;

在上述查询中,我们使用DATE_FORMAT()函数将sale_date格式化为%Y-%m的形式,以表示年份和月份。然后使用SUM()函数计算每个月份的销售总数量,并通过GROUP BY按照month进行分组。

  1. 多列分组

我们还可以同时按照多列进行分组。假设我们有一个员工表employees,包含departmentgender列。我们想要按照部门和性别统计员工数量,语句如下:

SELECT department, gender, COUNT(*) AS employee_count
FROM employees
GROUP BY department, gender;

在上述查询中,我们选择了departmentgender列,并使用COUNT()函数计算每个部门和性别组合的员工数量。然后使用GROUP BY将结果按照这两列进行分组。

  1. 筛选特定分组

有时候,我们可能只想要对满足特定条件的分组执行聚合操作。假设我们有一个学生表students,包含major和gpa列。我们想要统计每个专业中平均GPA大于3.5的学生数量,语句如下:

SELECT major, AVG(gpa) AS avg_gpa, COUNT(*) AS student_count
FROM students
GROUP BY major
HAVING avg_gpa > 3.5;

在上述查询中,我们使用AVG()函数计算每个专业的平均GPA,并使用COUNT()函数计算每个专业的学生数量。然后使用GROUP BY将结果按照major分组。最后,我们使用HAVING子句筛选出平均GPA大于3.5的专业。

总结

MySQL中的GROUP BY语句允许我们对数据进行分组,并在每个分组上执行聚合操作。通过合理使用GROUP BY,我们可以从大量数据中提取有意义的信息,以满足各种分析和报告需求。在实际使用中,我们需要注意合理选择聚合函数和分组列,以获得所需的统计结果。

标签:GROUP,函数,使用,查询,分组,MySQL,软件测试
From: https://www.cnblogs.com/hogwarts/p/17834342.html

相关文章

  • 第三方软件测试服务有哪些形式?选择时如何避雷?
    高新技术的快速发展,人们对于软件产品越来越依赖,因此软件质量对于软件企业来说至关重要。产品质量的好坏需要通过检测才得知,软件企业为了获得更客观公正的检验结果,会将软件测试交由第三方软件测试服务机构进行?那么有哪些形式?又该如何避雷呢?一、第三方软件测试的形式有哪......
  • 软件测试|好用的pycharm插件推荐(四)——Gitee
    简介现在的IDE都是可以集成了代码管理功能的,我们平时可以在pycharm中,轻松实现我们代码的版本管理,但是由于一些原因,GitHub的访问不稳定,我们只能使用国内的代码托管平台Gitee来实现我们的代码管理,但是pycharm是不能直接连接到Gitee仓库的,我们必须要先安装Gitee插件,才能实现pycharm......
  • 软件测试|Python Faker库使用指南
    简介Faker是一个Python库,用于生成虚假(假的)数据,用于测试、填充数据库、生成模拟数据等目的。它可以快速生成各种类型的虚假数据,如姓名、地址、电子邮件、电话号码、日期等,非常适合在开发和测试过程中使用。本文将介绍PythonFaker库的详细使用。安装Faker库首先,我们要先安装Fak......
  • 软件测试|Python数据可视化神器——pyecharts教程(八)
    Pyecharts绘制热力图当涉及可视化数据时,热力图是一种强大的工具,它可以帮助我们直观地了解数据集中的模式和趋势。在本文中,我们将学习如何使用Python中的Pyecharts库创建热力图,以便将数据转化为可视化的形式。什么是热力图?热力图是一种用于显示数据密度的二维图表,其中颜色的......
  • 软件测试|Python urllib3库使用指南
    简介当涉及到进行网络请求和处理HTTP相关任务时,Python的urllib3库是一个强大且灵活的选择。它提供了一种简单的方式来执行HTTP请求、处理响应和处理连接池,使得与Web服务进行交互变得更加容易。本文将详细介绍如何使用urllib3库进行网络请求。安装urllib3首先我们需要安装urlli......
  • Mysql免安装版(windows)配置
    1.安装包见附件注意:附件不允许上传分卷包,只能zip后缀,下载后需要将.z01,z02,z03后面的.zip删除,最终附件如下mysql-5.7.38-winx64.z01mysql-5.7.38-winx64.z02mysql-5.7.38-winx64.z03mysql-5.7.38-winx64.zip或者去官网下载 https://dev.mysql.com/downloads/mysql/2.安......
  • 软件测试|使用python绘制等高线密度图
    简介等高线密度图(ContourDensityPlot)是一种可视化数据分布的有效方式,特别适用于显示二维数据的密度分布情况。Python提供了丰富的工具和库,使得创建等高线密度图变得相对容易。在本文中,我们将介绍如何使用Python和Matplotlib库创建等高线密度图,并提供一个示例来演示整个过程。步骤......
  • 软件测试|使用Python提取出语句中的人名
    简介在自然语言处理(NLP)中,提取文本中的人名是一项常见的任务。Python作为一种流行的编程语言,拥有强大的NLP库和工具,使我们能够轻松地进行这项任务。在本文中,我们将使用Python示例来演示如何提取文本中的人名。环境准备我们将使用以下Python库来执行人名提取任务:spaCy:一个流行的NLP库......
  • MySQL事务
    MySQL事务事务是什么事务是一个操作序列,这些操作要么都做,要么都不做,是数据库环境中不可分割的逻辑工作单位。事务和程序是两个不同的概念,一般一个程序可包含多个事务。在SQL语言中,事务定义的语句有以下三条:1)BEGINTRANSACTION:事务开始。2)COMMIT:事务提交。该操作表示事务成功地......
  • Java Mysql 类型为Long 转 前端String
    一、背景JavaMysql类型为Long转前端会丢失精度,在原先基础上补0000;二、实现1.//@JsonSerialize(using=ToStringSerializer.class)但是对我这里是不生效的@JSONField(serializeUsing=com.alibaba.fastjson.serializer.ToStringSerializer.class)生效三、遇......