`

SQL:GROUP BY 以及 HAVING

阅读更多

合计函数 (比如 SUM) 常常需要添加 GROUP BY 功能。

GROUP BY...

把 GROUP BY 加入 SQL 的原因是,合计函数(比如 SUM)在每次被调用后会返回所有列的合计,如果没有 GROUP BY,就无法计算每个单独列值组合的总和。

GROUP BY 的语法:

SELECT column,SUM(column) FROM table GROUP BY column 

GROUP BY 实例

表 "Sales":

CompanyAmount
W3School 6500
IBM 5500
W3School 7300

SQL:

SELECT Company, SUM(Amount) FROM Sales  

结果:

CompanySUM(Amount)
W3School 19300
IBM 19300
W3School 19300

上面的代码是无效的,这是由于被返回的列没有进行部分合计。GROUP BY 子句能解决这个问题:

SELECT Company,SUM(Amount) FROM Sales GROUP BY Company 

结果:

CompanySUM(Amount)
W3School 13800
IBM 5500

HAVING...

把 HAVING 加入 SQL 的原因是,WHERE 无法应用于合计函数,而如果没有 HAVING,就无法测试结果条件。

HAVING 的语法:

SELECT column,SUM(column) FROM table GROUP BY column HAVING SUM(column) condition value 

表 "Sales":

CompanyAmount
W3School 6500
IBM 5500
W3School 7300

SQL:

SELECT Company,SUM(Amount) FROM Sales GROUP BY Company HAVING SUM(Amount)>10000  

结果:

CompanySUM(Amount)
W3School 13800
<!-- -->
分享到:
评论

相关推荐

    SQL问题详解之_having_Group by

    在SQL查询中,GROUP BY和HAVING子句是数据分析和聚合操作的核心部分,它们帮助我们对数据进行分组和过滤,以获得更有意义的结果。在深入理解这两个子句之前,我们首先需要了解聚合函数,如SUM、COUNT、MAX和AVG等。 ...

    order by 、group by 、having的用法

    在SQL查询中,`ORDER BY`、`GROUP BY` 和 `HAVING` 是三个非常重要的子句,它们分别用于不同的数据处理操作。 1. **ORDER BY** 子句: - `ORDER BY` 用于对查询结果进行排序,按照指定的字段进行升序或降序排列。...

    SQL GROUP BY 语句详解

    GROUP BY 语句还有其他高级用法,比如配合 HAVING 子句进行分组后的条件筛选,或者与子查询和联接操作结合使用,以实现更复杂的分析需求。总的来说,理解并熟练运用 GROUP BY 语句对于在 SQL 查询中进行数据分析至关...

    当数据库复杂查询执行顺序与编写顺序原理及sql案例:同时出现了where_group_by_having_order_by的时候_执行顺序和编写顺序

    当同时出现了where_group_by_having_order_by的时候_执行顺序和编写顺序时的用法

    基于TP框架SQL之where与having区别

    通过以上详细的介绍,我们可以看到`WHERE`与`HAVING`子句在SQL查询中的不同作用以及在ThinkPHP框架中如何利用`create()`等方法有效地管理数据的创建和验证过程。这对于提高应用程序的数据安全性和性能有着至关重要的...

    Oracle SQL:经典查询练手四篇

    此外,`HAVING`子句用于在分组后进行条件过滤,`ORDER BY`则用于结果排序。这些概念是Oracle SQL查询中的基础,也是进阶查询技巧的核心。 通过这个系列,读者不仅可以掌握基础的SQL查询,还能深入理解如何在实际...

    《Pro Oracle SQL》Chapter7--7.10GROUP BY Restrictions

    通过阅读7_22.sql、7_21.sql、7_20.sql这三个文件,我们可以看到实际的SQL语句示例,这些示例可能展示了GROUP BY的不同用法和限制,包括如何正确地处理分组、聚合以及如何在实践中避免常见的错误。通过对这些文件的...

    sql语句教程(包括比较难理解的group by以及having指令的使用)

    我们将特别关注那些较为复杂的SQL指令,如`GROUP BY`和`HAVING`等。 #### 二、SQL基础指令详解 ##### 1. SELECT **用途**:`SELECT`是最常用的SQL指令之一,主要用于从数据库中选取数据。 **语法**: ```sql ...

    深入浅析SQL中的group by 和 having 用法

    在SQL查询中,`GROUP BY`和`HAVING`是两个非常重要的子句,它们用于数据的分组和过滤,特别是在处理聚合数据时。本文将深入解析这两个概念及其使用方法。 首先,`GROUP BY`子句是用于将数据集按照指定的列或表达式...

    order_by_、group_by_、having的用法

    在SQL查询中,`order_by_`、`group_by_`和`having`是三个非常重要的关键字,它们分别用于不同的数据处理操作。 1. `ORDER BY`:此关键字用于对查询结果进行排序,默认是升序(ASC),也可以指定降序(DESC)。在`...

    SQL_HAVING_使用详解

    在 SQL 查询语言中,`HAVING` 子句被用来过滤由 `GROUP BY` 子句产生的结果集。与 `WHERE` 子句不同,`HAVING` 子句在数据经过分组后才应用过滤条件。这意味着 `HAVING` 子句可以包含聚合函数(如 `SUM()`, `AVG()`,...

    sql/having用法

    筛选条件可以包括常量、聚合函数以及`GROUP BY`子句中指定的列。 为了更好地理解`HAVING`子句的作用,我们来举一个简单的例子。假设我们有一个订单表`orders`,其中包含订单号`SNO`和客户号`CNO`。如果我们想知道每...

    sql中的 where 、group by 和 having 用法解析

    在SQL查询中,`WHERE`、`GROUP BY`和`HAVING`子句都是用于数据筛选和分组的重要部分,但它们各自承担不同的任务。理解它们的用法对于编写有效的SQL查询至关重要。 首先,`WHERE`子句是SQL查询中最基本的过滤条件,...

    JsonSQL:用SQL语句解析JSON文件

    5. **GROUP BY** 和 **HAVING**: 可以用于聚合数据。`GROUP BY data.country` 可以按国家分组,`HAVING COUNT(*) &gt; 10` 则可以找出拥有超过10个订单的国家。 6. **ORDER BY** 和 **LIMIT**: 用于排序和限制返回结果...

    sql-Group-by.rar_oracle

    通过阅读“sql分组函数使用.txt”,你将能够深入了解如何在Oracle中有效地使用GROUP BY,以及它如何与其他SQL元素结合使用以提供深入的数据洞察。理解并熟练运用这些概念对于进行复杂的数据分析和报告至关重要。

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

    SQL中的`GROUP BY`语句是数据库查询中的一个重要部分,它用于将数据按照一个或多个列的值进行分组,以便对每个组执行聚合函数,如`SUM`、`COUNT`、`AVG`和`MAX`等。下面我们将详细讨论`GROUP BY`的使用方法及其相关...

    order_by_、group_by_、having的用法区别.doc

    在SQL查询语言中,`ORDER BY`, `GROUP BY`, 和 `HAVING` 是三个非常重要的概念,它们分别用于对查询结果进行排序、分组以及在分组后进一步筛选数据。这些操作对于数据分析和报表制作来说至关重要。 #### 二、ORDER ...

Global site tag (gtag.js) - Google Analytics