iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >group by指的是什么
  • 794
分享到

group by指的是什么

groupby 2023-03-13 11:03:01 794人浏览 安东尼
摘要

这篇文章主要讲解了“group by指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“group by指的是什么”吧! g

这篇文章主要讲解了“group by指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“group by指的是什么”吧!

group by的意思为“分组查询”,可以理解为“根据(by)一定的规则进行分组(Group)”;作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。在Mysql中,GROUP BY是SELECT语句的可选子句,用于根据一个或多个字段对查询结果进行分组,它减少了结果集中的行数。

group by的意思为“分组查询”。

Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。

MySQL使用GROUP BY分组查询

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

GROUP BY子句通过列或表达式的值将一组行分组为一个小分组的汇总行记录。 GROUP BY子句为每个分组返回一行。换句话说,它减少了结果集中的行数。

经常使用GROUP BY子句与聚合函数一起使用,如SUM,AVG,MAX,MIN和COUNT。SELECT子句中使用聚合函数来计算有关每个分组的信息。

GROUP BY子句是SELECT语句的可选子句。 下面是GROUP BY子句语法:

SELECT 
    c1, c2,..., cn, aggregate_function(ci)
FROM
    table
WHERE
    where_conditions
GROUP BY c1 , c2,...,cn;

GROUP BY子句必须出现在FROM和WHERE子句之后。 在GROUP BY关键字之后是一个以逗号分隔的列或表达式的列表,这些是要用作为条件来对行进行分组。

MySQL GROUP BY示例

1、简单的MySQL GROUP BY示例

我们来看看示例数据库(yiibaidb)中的orders表,其结构如下所示 -

mysql> desc orders;

group by指的是什么

假设要将订单状态的值分组到子组中,则要使用GROUP BY子句并指定按status列来执行分组,如下查询:

SELECT 
    status
FROM
    orders
GROUP BY status;

执行上面查询语句,得到以下结果 -

group by指的是什么

可以看到,GROUP BY子句返回状态(status)值是唯一的。它像DISTINCT运算符一样工作,如下面的查询所示:

SELECT DISTINCT
    status
FROM
    orders;

执行上面查询语句,得到以下结果 -

group by指的是什么

2、MySQL GROUP BY与聚合函数

可使用聚合函数来执行一组行的计算并返回单个值。 GROUP BY子句通常与聚合函数一起使用以执行计算每个分组并返回单个值。

例如,如果想知道每个状态中的订单数,可以使用COUNT函数与GROUP BY子句查询语句,如下所示:

SELECT 
    status, COUNT(*) AS total_number
FROM
    orders
GROUP BY status;

执行上面查询语句,得到以下结果 -

group by指的是什么

请参阅以下订单(orders)和订单详细(orderdetails)表,它们的ER图如下所示 -

group by指的是什么

要按状态获取所有订单的总金额,可以使用orderdetails表连接orders表,并使用SUM函数计算总金额。请参阅以下查询:

SELECT 
    status, SUM(quantityOrdered * priceEach) AS amount
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
GROUP BY status;

执行上面查询,得到以下结果 -

group by指的是什么

类似地,以下查询返回订单号和每个订单的总金额。

SELECT 
    orderNumber,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orderdetails
GROUP BY orderNumber;

执行上面查询,得到以下结果 -

group by指的是什么

3、MySQL GROUP BY用表达式示例

除了列之外,可以按表达式对行进行分组。以下查询获取每年的总销售额。

SELECT 
    YEAR(orderDate) AS year,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
WHERE
    status = 'Shipped'
GROUP BY YEAR(orderDate);

执行上面查询,得到以下结果 -

group by指的是什么

在这个例子中,我们使用YEAR函数从订单日期(orderDate)中提取年份数据。只包括已发货(Shipped)状态的订单。 请注意,SELECT子句中出现的表达式必须与GROUP BY子句中的相同。

MySQL GROUP BY与HAVING子句

可使用HAVING子句过滤GROUP BY子句返回的分组。以下查询使用HAVING子句来选择2013年以后的年销售总额。

SELECT 
    YEAR(orderDate) AS year,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
WHERE
    status = 'Shipped'
GROUP BY year
HAVING year > 2013;

执行上面查询,得到以下结果 -

group by指的是什么

GROUP BY子句:MySQL与标准SQL

标准SQL不允许使用GROUP BY子句中的别名,但MySQL支持此选项。以下查询从订单日期提取年份,并对每年的订单进行计数。该year用作表达式YEAR(orderDate)的别名,它也用作GROUP BY子句中的别名,此查询在标准SQL中无效。

参考以下查询 -

SELECT 
    YEAR(orderDate) AS year, COUNT(orderNumber)
FROM
    orders
GROUP BY year;

执行上面查询,得到以下结果 -

group by指的是什么

MySQL还允许您以升序或降序(标准SQL不能提供)对组进行排序。默认顺序是升序。例如,如果要按状态获取订单数量并按降序对状态进行排序,则可以使用带有DESC的GROUP BY子句,如下查询语句:

SELECT 
    status, COUNT(*)
FROM
    orders
GROUP BY status DESC;

执行上面查询,得到以下结果 -

group by指的是什么

请注意,在GROUP BY子句中使用DESC以降序对状态进行排序。我们还可以在GROUP BY子句中明确指定ASC,按状态对分组进行升序排序。

感谢各位的阅读,以上就是“group by指的是什么”的内容了,经过本文的学习后,相信大家对group by指的是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: group by指的是什么

本文链接: http://www.lsjlt.com/news/199536.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • group by指的是什么
    这篇文章主要讲解了“group by指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“group by指的是什么”吧! g...
    99+
    2023-03-13
    group by
  • sql中order by和group by的区别是什么
    sql中order by和group by的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。order by 从英文里...
    99+
    2024-04-02
  • oracle中group by的用法是什么
    在Oracle中,GROUP BY用于将查询结果按照指定的列进行分组。通过GROUP BY子句可以对查询结果进行分组,在每个分组中执...
    99+
    2024-03-13
    oracle
  • sql中group by的用法是什么
    在SQL中,GROUP BY用于将结果集按照一个或多个列进行分组。它常与聚合函数(如SUM,COUNT,AVG等)一起使用,以便对每...
    99+
    2024-04-09
    sql
  • oracle中group by的作用是什么
    在Oracle数据库中,GROUP BY子句用于将查询结果按照指定的列进行分组,然后对每个分组应用聚合函数,如SUM、AVG、COU...
    99+
    2024-03-13
    oracle
  • sql中group by用法是什么
    在SQL中,`GROUP BY`用于将行分组为一个或多个汇总行,并对每个组应用聚合函数(如`COUNT`、`SUM`、`AVG`等)...
    99+
    2023-08-09
    sql
  • sql中group by是什么意思
    group by 是 sql 中的聚合函数,用于根据指定列对数据分组并执行聚合操作。它允许用户:根据特定列值对数据行进行分组。对每个组应用聚合函数(如求和、计数、求平均值)。从庞大数据集...
    99+
    2024-04-29
    聚合函数
  • mysql中group by是什么意思
    group by 是一个 sql 聚合函数,用于按指定列对数据行进行分组,并对每个组执行计算。其语法为:select 列名, 聚合函数(列名) from 表名 group by...
    99+
    2024-04-26
    mysql 聚合函数
  • group by什么意思
    "GROUP BY" 是一个在数据库中使用的关键字,用于将行分组为一个或多个分类,并对每个组执行聚合函数(如 SUM、COUNT、A...
    99+
    2023-08-30
    group by
  • SQL GROUP BY语句的作用是什么
    SQL GROUP BY语句用于将结果集按照一个或多个列进行分组,并对每个分组进行聚合运算。它的作用包括:1. 对结果集进行分组:G...
    99+
    2023-10-11
    SQL
  • SQL中Group By的使用方法是什么
    在SQL中,GROUP BY语句用于将具有相同值的行分组在一起,并使用聚合函数(如SUM、COUNT、AVG等)对每个组进行计算。其...
    99+
    2024-04-09
    SQL
  • 数据库中group by的用法是什么
    本篇内容介绍了“数据库中group by的用法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前段时间...
    99+
    2024-04-02
  • Mysql数据库group by原理是什么
    这篇文章主要介绍“Mysql数据库group by原理是什么”,在日常操作中,相信很多人在Mysql数据库group by原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql...
    99+
    2023-07-02
  • 聚合函数和group by的关系是什么
    这篇文章给大家分享的是有关聚合函数和group by的关系是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言world:世界表格continent:大洲名称name:国家名称population:...
    99+
    2023-06-22
  • sql中group by什么意思
    group by 子句用于将数据分组,并根据组别进行聚合操作。它将具有相同值的行的组分组在一起,并在每个组内计算汇总值或筛选数据。 GROUP BY:数据分组 在 SQL 中,GROU...
    99+
    2024-04-28
    聚合函数
  • group by在sql中什么意思
    group by 子句将数据集划分为组,依据是指定列或表达式,将相同分组依据值的记录归为一组。它可用于汇总计算或聚合数据,如计算每个产品类型的销售总额、平均值和最大值。 GROUP B...
    99+
    2024-04-29
    聚合函数
  • 分组函数group by优化方法是什么
    这篇文章主要讲解了“分组函数group by优化方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分组函数group by优化方法是什么”吧!通过实验...
    99+
    2024-04-02
  • mysql GROUP BY 怎么 order by 排序
    在 MySQL 中使用 GROUP BY 子句时,如果需要对结果进行排序,可以使用 ORDER BY 子句来对分组后的结果进行排序。 ORDER BY 子句应该放在 GROUP BY 子句之后,使用逗号来分隔需要排序的列,并在排序列后指定排...
    99+
    2023-09-09
    mysql 数据库 排序算法
  • mysql group by与order by的区别
    本篇内容介绍了“mysql group by与order by的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • group by的用法
    group by 的解释:   对哪个字段 ( 哪几个字段)进行分组。 group by 的用法:   select 字段 from 表 where 条件 group by 字段1(,字段2,字段3)   sele...
    99+
    2023-09-12
    sql 数据库 mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作