`
本来不想注册
  • 浏览: 201188 次
  • 性别: 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字句过滤
分享到:
评论

相关推荐

    SQL中where子句与having子句的区别小结

    `WHERE`子句主要用于在数据分组之前筛选单个行,而`HAVING`子句则是在数据经过`GROUP BY`分组后对分组结果进行筛选。 首先,`WHERE`子句不能与`GROUP BY`子句一起出现在同一查询的同一层次。它通常用在查询的开始,...

    oracle中where 子句和having子句中的区别介绍

    它在查询过程中的执行顺序位于`SELECT`和`GROUP BY`之前,因此`WHERE`子句不能包含聚合函数(如`SUM`, `AVG`, `COUNT`等),因为它是在对单行数据进行操作时使用。例如,你可以使用`WHERE`子句来过滤掉特定的员工,...

    Oracle Sql基础 Oracle Sql基础 Oracle Sql基础

    它可以用来选择数据库表中的特定列或所有列,也可以对数据进行过滤、排序、分组等操作。 **1.4 基本SELECT语句** - **1.4.1 选择所有列** - 使用SELECT * FROM 表名; 来选择表中的所有列。 - **1.4.2 选择指定的...

    鸿鹄论坛_oracle四大宝典之1:Oracle Sql基础.

    2. **使用WHERE字句**:如`SELECT * FROM 表名 WHERE 条件;`。 3. **条件中使用字符串和日期**:可以根据字符串或日期进行过滤。 4. **比较条件**:支持多种比较运算符,如`=`、`!=`、`>`、`等。 5. **使用BETWEEN...

    群读物第四期[Oracle Sql基础]

    - **使用WHERE字句:** 如`SELECT * FROM 表名 WHERE 条件;`。 - **条件中使用字符串和日期:** 可以使用字符串匹配(如`LIKE`)和日期比较(如`>=`)来过滤结果。 - **比较条件:** `=`、`!=`、`<>`、`>`、`、`>=`...

    oracle数据库

    - **2.2.2 使用WHERE字句** - `WHERE`子句用于过滤数据,只返回满足条件的行。 - **2.2.3 条件中使用字符串和日期** - 可以在`WHERE`子句中使用字符串和日期来进行条件过滤。 - **2.2.4 比较条件** - SQL支持多种...

    oracle 基础讲解

    - **条件字句**:WHERE子句用于指定SQL查询中的过滤条件。 - **消除重复记录**:使用DISTINCT关键字去除查询结果中的重复行。 - **DUAL表**:Oracle内部的一个单行表,常用于测试查询或函数。 - **更新数据**:...

Global site tag (gtag.js) - Google Analytics