`

sql group by 与 having的用法

SQL 
阅读更多
1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用

group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面(重要)
例如,有如下数据库表:

A    B
1    abc
1    bcd


1    asdfg

如果有如下查询语句(该语句是错误的,原因见前面的原则)

select A,B from table group by A 


该查询语句的意图是想得到如下结果(当然只是一相情愿)


A      B
       abc
1      bcd
       asdfg 

右边3条如何变成一条,所以需要用到聚合函数,如下(下面是正确的写法):

select A,count(B) as 数量 from table group by A
这样的结果就是
A    数量
1    3 

2. Having

where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。


having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。通常,你需要通过在HAVING子句中重复聚合函数表达式来引用聚合值,就如你在SELECT语句中做的那样。例如:


SELECT A COUNT(B) FROM TABLE GROUP BY A HAVING COUNT(B)>2







分享到:
评论

相关推荐

    order by 、group by 、having的用法

    总的来说,`ORDER BY`、`GROUP BY` 和 `HAVING` 是SQL中进行数据组织和分析的关键工具,掌握它们的用法对于高效地处理大数据至关重要。正确地运用这些子句可以帮助我们更好地理解和分析数据,从而做出更明智的决策。

    SQL问题详解之_having_Group by

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

    sql/having用法

    从上面的例子可以看到,HAVING 子句可以与 GROUP BY 子句结合使用,来对分组后的结果进行筛选。例如,在第一个例子中,HAVING 子句用于筛选出 count(SNO) 等于 2 的行组。在第二个例子中,HAVING 子句用于筛选出 ...

    SQL GROUP BY 语句详解

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

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

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

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

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

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

    下面我们将详细讨论`GROUP BY`的使用方法及其相关知识点。 1. **`GROUP BY`的基本概念** `GROUP BY`关键字用于将数据表中的数据根据一个或多个列的值进行分组。通过分组,你可以对每个组应用聚合函数,这有助于...

    order_by_、group_by_、having的用法

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

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

    为了确保数据安全性及合法性,可以使用`field()`方法与`create()`方法结合,来检测表单提交字段的合法性。 - **示例代码**: ```php $model->field('title,email,content')->create(); ``` - **说明**: - ...

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

    ### SQL中的ORDER BY, GROUP BY, HAVING 的用法区别详解 #### 一、概述 在SQL查询语言中,`ORDER BY`, `GROUP BY`, 和 `HAVING` 是三个非常重要的概念,它们分别用于对查询结果进行排序、分组以及在分组后进一步...

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

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

    浅谈sql语句中GROUP BY 和 HAVING的使用方法

    在SQL查询中,GROUP BY和HAVING子句是用来处理数据分组和筛选的。GROUP BY语句用于将数据按照一个或多个列进行分组,而HAVING子句则是在分组后对各组数据进行筛选。 首先,我们需要了解SQL中的聚合函数,如SUM、...

    order_by_、group_by_、having的用法区别

    order_by_、group_by_、having的用法区别

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

    5. HAVING子句:GROUP BY通常与HAVING子句结合使用,HAVING用于在分组后过滤结果,而WHERE则在分组前过滤。HAVING条件可以基于聚合函数的结果,这是WHERE子句做不到的。 6. 分组嵌套:可以使用多级GROUP BY来创建...

    MySQL中无GROUP BY情况下直接使用HAVING语句的问题探究

    在MySQL中,`GROUP BY` 和 `HAVING` 通常一起用于聚合查询,用来筛选满足特定条件的分组。...在实际开发中,应尽量遵循SQL的标准规范,使用 `GROUP BY` 来配合 `HAVING`,确保查询的准确性和效率。

    having语句的用法

    总之,`HAVING`子句是SQL中用于处理分组数据过滤的关键工具,它与`WHERE`子句协同工作,共同帮助我们获取满足特定需求的数据集。在编写复杂的SQL查询时,正确理解和使用这两个子句是非常重要的。

    详解SQL中Group By的用法

    在SQL中,`GROUP BY`语句是数据分析和报表生成的核心工具之一,它允许我们根据一个或多个列的值对数据进行分组,并且通常与聚合函数一起使用,以对每个组进行计算。以下是关于`GROUP BY`用法的详细说明: 1. **基本...

Global site tag (gtag.js) - Google Analytics