`

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的时候_执行顺序和编写顺序时的用法

    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用法

    HAVING子句是SQL中的一种子句,用于对 GROUP BY 子句所确定的行组进行控制。HAVING 子句条件中只允许涉及常量、聚组函数或 GROUP BY 子句中的列。在 Oracle 中,HAVING 子句是对 GROUP BY 子句的补充,用于对分组后...

    SQL_HAVING_使用详解

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

    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 ...

    关于sql的group by的分析

    在本文中,我们将深入探讨`GROUP BY`的用法、注意事项以及它在实际应用中的作用。 首先,让我们了解`GROUP BY`的基本语法。当我们在一个查询中使用`GROUP BY`时,我们首先要指定一个或多个列名,这些列将根据其值对...

Global site tag (gtag.js) - Google Analytics