`
lgstarzkhl
  • 浏览: 333344 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

SQL GROUP BY 语句

SQL 
阅读更多
合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。
GROUP BY 语句
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。

SQL GROUP BY 语法
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
SQL GROUP BY 实例
我们拥有下面这个 "Orders" 表:

O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

现在,我们希望查找每个客户的总金额(总订单)。

我们想要使用 GROUP BY 语句对客户进行组合。

我们使用下列 SQL 语句:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
结果集类似这样:

Customer SUM(OrderPrice)
Bush 2000
Carter 1700
Adams 2000

很棒吧,对不对?

让我们看一下如果省略 GROUP BY 会出现什么情况:

SELECT Customer,SUM(OrderPrice) FROM Orders结果集类似这样:

Customer SUM(OrderPrice)
Bush 5700
Carter 5700
Bush 5700
Bush 5700
Adams 5700
Carter 5700

上面的结果集不是我们需要的。

那么为什么不能使用上面这条 SELECT 语句呢?解释如下:上面的 SELECT 语句指定了两列(Customer 和 SUM(OrderPrice))。"SUM(OrderPrice)" 返回一个单独的值("OrderPrice" 列的总计),而 "Customer" 返回 6 个值(每个值对应 "Orders" 表中的每一行)。因此,我们得不到正确的结果。不过,您已经看到了,GROUP BY 语句解决了这个问题。
GROUP BY 一个以上的列
我们也可以对一个以上的列应用 GROUP BY 语句,就像这样:

SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
GROUP BY Customer,OrderDate
分享到:
评论

相关推荐

    SQL GROUP BY 语句详解

    SQL GROUP BY 语句是数据库查询中非常重要的一个部分,它允许我们对数据进行分组,以便于统计和分析。在处理大型数据集时,GROUP BY 与聚合函数(如 SUM、COUNT、AVG、MAX 和 MIN)一起使用,能够帮助我们汇总数据,...

    SQL中GROUP BY的用法

    GROUP BY 是 SQL 中的一种分组查询语句,通常与聚合函数配合使用。GROUP BY 语句根据一个或多个列将查询结果分组,并对每组计算聚合函数的值。 在使用 GROUP BY 语句时,需要注意以下几点: 1. select 语句中所有...

    Sql聚合函数和group by的关系详解.doc

    Sql 聚合函数和 group by 的关系详解 Sql 聚合函数和 group by 是 SQL 语言中两个非常重要的概念,它们之间存在紧密的联系。那么,什么是聚合函数?什么是 group by?它们之间的关系是什么?在本文中,我们将详细地...

    sqlserver+group by分组查询分页存储过程

    2. **构建SQL查询语句**:根据输入参数动态生成SQL查询语句,包括`WHERE`、`GROUP BY`和`ORDER BY`子句。 3. **执行分页查询**:使用动态生成的SQL语句执行查询,并通过设置`ROWCOUNT`来限制返回的结果集大小。 ###...

    常用SQL*Plus语句:

    4. GROUP BY语句:用于对查询结果进行分组。 5. HAVING语句:用于对分组结果进行筛选。 例如: SELECT 字段名1, 字段名2, …… FROM 表名 WHERE 条件 GROUP BY 字段名 HAVING 条件; 四、SQL*Plus命令: 1. ...

    SQL语句SQL语句.zip

    在这个名为“SQL语句SQL语句.zip”的压缩包中,包含了一个名为“SQL语句.sql”的文件,很可能是包含了一系列SQL查询和其他数据库操作的脚本。 SQL主要分为以下几个部分: 1. 数据查询(DQL):这是SQL最基础的功能...

    简单讲解sql语句中的group by的使用方法

    group by 就是依据by 后面的规则对数据分组,所谓的分组就是讲数据集划分成若干个’小组’,针对若干个小组做处理。 2.语法规则 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE ...

    SQL基本语句 SQL基本语句

    除此之外,SQL还支持更复杂的操作,如JOINs(连接多个表)、GROUP BY(用于聚合数据)、ORDER BY(排序结果)和HAVING(在聚合后设置条件)。同时,SQL的事务处理能力确保了数据的一致性,即使在事务的一部分失败时...

    SQL语句测试SQL语句测试SQL语句测试

    首先,SQL包括多种基本语句,如SELECT、INSERT、UPDATE、DELETE,以及更复杂的JOIN、GROUP BY、HAVING等。SELECT语句用于查询数据,INSERT用于插入新记录,UPDATE用于修改现有记录,DELETE则用于删除记录。JOIN操作...

    SQL server查询语句例子

    本查询语句使用 GROUP BY 语句对销售明细表进行分组,并使用 SUM 函数计算每种产品的销售数量和金额。 6. 使用 CONVERT 函数按客户编号统计每个客户 1996 年的订单总金额 SELECT cust_id, SUM(tot_amt) totprice ...

    SQLSERVER去重语句.docx

    这个查询首先通过`GROUP BY`和`HAVING`子句找出`Parameter`字段值重复的行,然后在外部查询中筛选出这些重复记录。 2. 单字段去重删除: 如果希望删除重复的记录,但保留每个重复组中主键ID最小的记录,可以使用...

    基本SQL数据库查询语句大全

    本文将深入探讨基本的SQL查询语句,帮助你从基础开始全面掌握SQL。 1. **SELECT语句**:SQL的核心是SELECT语句,它用于从数据库中检索数据。基本语法如下: ```sql SELECT column1, column2, ... FROM table_...

    SQLServer实用SQL语句大全

    这个"SQLServer实用SQL语句大全"资源很可能包含了广泛且深入的SQL语法和实用技巧,适用于数据库设计、数据查询、数据更新以及数据库维护等各种场景。下面我们将深入探讨一些重要的SQL Server SQL语句和概念。 1. **...

    JsonSQL:用SQL语句解析JSON文件

    **JsonSQL: SQL语句解析JSON文件** 在大数据处理和Web应用中,JSON(JavaScript Object Notation)格式已经成为数据交换的常见格式。然而,对于习惯使用SQL查询关系型数据库的人来说,处理JSON数据可能会觉得不太...

    基本SQL语句及PL/SQL语句

    3. **数据查询语言(DQL)**:用于从数据库中检索数据,最常用的语句是`SELECT`,可以配合`WHERE`子句进行条件查询,`GROUP BY`用于数据分组,`HAVING`用于分组后的条件过滤。 4. **数据控制语言(DCL)**:用于...

    SQL数据库常用语句

    这个语句使用了 `join` 语句来连接两个表,並使用 `group by` 语句来对客户信息进行分组。 8. 查找 1997 年的销售记录 下面,我们来看一个查询语句,用于查找 1997 年中有销售记录的客户编号、名称和订单总额。 ``...

    SQL 语句大全 SQL 语句大全

    - **分组与排序**:GROUP BY和ORDER BY子句,分别用于按一个或多个字段进行数据分组和排序。 - **联接查询**:JOIN操作将两个或更多表的数据结合在一起,如INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。 - **...

    SQL语句表SQL语句表SQL语句表

    以下是一些SQL语句的主要部分及其用法: 1. **创建表(CREATE TABLE)**:创建一个新的数据库表,指定列名和数据类型。例如: ```sql CREATE TABLE Employees ( ID INT, Name VARCHAR(50), Age INT, Position...

Global site tag (gtag.js) - Google Analytics