【问题标题】:oracle sql select syntax with GROUP BY and HAVING clauseoracle sql select语法与GROUP BY和HAVING子句
【发布时间】:2013-12-09 22:20:04
【问题描述】:

我一直在通过一些 sql 语法来学习 oracle sql 考试,我发现一些相当混乱的东西

基于official 引用,选择语法如下:

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 ; 

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

【问题讨论】:

标签: sql oracle group-by having


【解决方案1】:

here所述:

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

在 where_clause 和 hierarchy_query_clause 之后指定 GROUP BY 和 HAVING。如果您同时指定 GROUP BY 和 HAVING,那么它们可以按任意顺序出现。

【讨论】:

    猜你喜欢
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多