`
本来不想注册
  • 浏览: 197533 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Where字句只能对单行而不是分组进行过滤

SQL 
阅读更多
如果你输入这样的sql语句:
select product_type_id, avg(price)
from products
where avg(price) > 20
group by product_type_id;


将是错误的,因为Where字句只能对单行而不是分组进行过滤

要想过滤分组行,可以使用having字句,如下:

select product_type_id, avg(price)
from products
group by product_type_id
having avg(price) > 20;



固有顺序是这样的:
select....
from....
where
group by....
having....
order by....


where字句先对表中的行先进行过滤,然后才分组再用having字句过滤
分享到:
评论

相关推荐

    精通HAVING子句:分组后条件过滤的SQL应用

    与WHERE子句在分组前对数据进行过滤不同,HAVING子句在分组后对分组的结果进行过滤。本文将详细介绍如何使用HAVING子句进行分组后的条件过滤,并探讨其在实际数据库开发中的应用。 在SQL中,GROUP BY子句用于将结果...

    使用Having过滤分组数据.rar

    然而,标准的`WHERE`子句是在分组前对原始行进行过滤,而`HAVING`子句则是在分组后对聚合结果进行过滤。 标题"使用Having过滤分组数据"和描述中的重复内容暗示我们将探讨如何利用`HAVING`子句筛选出满足特定条件的...

    SQL WHERE 条件解析器

    5. **操作与还原**:使用者可以对条件树进行修改,比如添加、删除或修改条件,然后解析器会根据新的条件树生成对应的更新后的`WHERE`子句。 这个工具的实用性在于,它允许开发者以更直观的方式处理和调整`WHERE`...

    SQL之分组统计和子查询专题

    李兴华老师的ORACLE数据库课程中,对分组统计和子查询进行了深入详解。本课程涵盖了分组统计的重点和难点、子查询的概念和应用场景,以及在实际开发中需要注意的细节。 分组统计 在SQL中,分组统计是对数据进行...

    sql中where和having 区别

    聚合函数是SQL中处理多条记录的特殊函数,它们对整个分组进行计算,而不是单个记录。例如,`SELECT SUM(population) FROM tablename`计算了表中所有国家的人口总数。当使用`GROUP BY`时,聚合函数会对每个分组分别...

    SQL 必知必会 10 - 分组数据1

    这不同于WHERE子句,WHERE子句是过滤单行记录,而HAVING子句则是在分组后过滤整个分组。例如,如果我们想找出那些拥有至少两个产品的供应商,可以使用HAVING子句:`SELECT vend_id, COUNT(*) AS num_prods FROM ...

    select form where 语句

    SELECT 语句的基本结构为:SELECT 语句、FROM 语句、WHERE 语句。其中,SELECT 语句用于指定要检索的列,FROM 语句用于指定要检索的表,WHERE 语句用于指定要检索的条件。 在 SELECT 语句中,我们可以使用 DISTINCT...

    02.hive查询语法--分组聚合--groupby查询--where过滤和having过滤的区别.mp4

    02.hive查询语法--分组聚合--groupby查询--where过滤和having过滤的区别.mp4

    where和having区别

    `HAVING`子句则是在执行完分组和聚合操作之后对结果集进行进一步的过滤。它通常与`GROUP BY`子句一起使用,用来筛选聚合后的结果。 **特点:** 1. **作用于分组后的结果集**:`HAVING`子句是基于聚合函数的结果...

    PLSQL单行函数和组函数详解

    例如,`TO_CHAR`函数用于格式化日期或数值输出,`UPPER`函数用于将字符串转换为大写,而`SOUNDEX`函数则用于根据发音对字符串进行排序。在处理NULL值时,我们需要特别注意,因为大部分函数在遇到NULL时会返回NULL。`...

    -分组函数&子查询

    - 注意事项:当使用分组函数时,查询结果中除了分组列外,只能包含分组函数。 ### 子查询 子查询是在一个查询内部嵌入另一个查询,内部查询的结果被外部查询用作过滤条件或数据源。 #### 单行子查询 单行子查询的...

    分组聚合函数详细讲解

    两者可以同时出现在查询中,先由`WHERE`过滤数据,然后由`HAVING`对分组后的结果进行筛选。 总之,分组聚合函数是SQL中进行数据分析的关键工具,通过`GROUP BY`、`HAVING`以及各种聚合函数,我们可以有效地处理大...

    MySql中having字句对组记录进行筛选使用说明

    MySql中having字句对组记录进行筛选使用说明 在MySQL中,having字句是一种强大的工具,能够让我们筛选成组后的各种数据。它通常与group by子句一起使用,来对组记录进行筛选。下面我们将详细介绍having字句的使用...

    详析SQL语言的WHERE子句与HAVING子句.pdf

    WHERE在数据被分组前进行过滤,而HAVING则在数据分组后对聚合结果进行过滤。WHERE适用于单行记录级别的筛选,而HAVING则适用于多行数据的汇总筛选。 SQL语言的非过程化特性使得它对用户友好,用户无需关注数据存储...

    【MySQL】:分组查询where与having

    `HAVING`子句则是在`GROUP BY`之后使用的,它允许我们在分组后对聚合结果进行过滤。比如,如果我们想找出平均分大于60的性别: ```sql SELECT gender, AVG(score) FROM tab GROUP BY gender HAVING AVG(score) > 60...

    MySQL优化篇:排序分组优化.pdf

    order by关键字用于对查询结果进行排序,而group by关键字用于对数据进行分组汇总。这两个操作在SQL语句中非常常见,但如果没有合理优化,可能会导致查询效率低下,影响数据库性能。 在优化order by排序时,首先...

    oracle分组函数

    通过本章节的学习,读者将能够理解单行函数与分组函数之间的区别,并熟练掌握常用的五种分组函数,包括如何使用`GROUP BY`语句来进行数据分组,以及如何使用`HAVING`子句来过滤分组后的记录。 #### 二、为什么使用...

    oracle where case when where后面跟case when

    在Oracle数据库中,`WHERE`子句是SQL查询语句的一部分,用于指定查询条件,而`CASE WHEN`语句则是一种条件表达式,允许我们基于不同的条件返回不同的值。将`CASE WHEN`嵌套在`WHERE`子句中,可以实现更复杂的逻辑...

    C#List集合分组winform把List分组

    当需要对这些数据进行分组和筛选时,C#提供了Linq(Language Integrated Query,语言集成查询)这一强大的工具。 标题"**C# List集合分组WinForm把List分组**"涉及到的关键知识点是C#中的List集合以及如何利用Linq...

    数据库中如何分类、分组并总计SQL数据

    `GROUP BY`与`SELECT`一起使用,但`SELECT`只能包含分组列或聚合函数(如`COUNT`, `SUM`, `AVG`, `MIN`, `MAX`),因为它们提供关于每个组的信息,而不是单个记录。 3. **WHERE子句**: `WHERE`子句用于在分组之前...

Global site tag (gtag.js) - Google Analytics