SQL

使用GROUP BY和HAVING子句的oracle sql select语法

发布于 2021-05-10 21:14:35

我一直在通过一些sql语法来学习oracle sql考试,但发现有些令人困惑

根据官方参考,选择语法如下:

SELECT
    [ hint ]
    [ { { DISTINCT | UNIQUE } | ALL } ]
   select_list
     FROM { table_reference | join_clause | ( join_clause ) }
            [ , { table_reference | join_clause | (join_clause) } ] ...
     [ where_clause ]
     [ hierarchical_query_clause ]
     [ group_by_clause ]
     [ HAVING condition ]
     [ model_clause ]

基于此,您不能在GROUP BY子句之前有HAVING子句。但是,如果我要在测试服务器中执行以下sql:

select 
   department_id , count (*)      
from 
    employees 
having 
    count(*) > 6 
group by 
    department_id ;

它不会产生语法错误,有人可以帮忙解释一下吗?我不认为参考文档是错误的,但是如果是这样,我需要一些确认。

关注者
0
被浏览
123
1 个回答
  • 面试哥
    面试哥 2021-05-10
    为面试而生,有面试问题,就找面试哥。

    如前所述这里

    使用HAVING子句将返回的行的组限制为指定条件为TRUE的组。如果省略此子句,则数据库将返回所有组的摘要行。

    在where_clause和hierarchical_query_clause之后指定GROUP BY和HAVING。如果同时指定GROUP
    BY和HAVING, 则它们可以按任一顺序出现。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看