• oracle, group by, having, where


    选择列表中如果包含有列、表达式时,这个列、表达式必须包含在Group By子句中。另外,如果采用了表达式的话,则数据库管理员即使在选择列表中采用了别名,但是在Group By子句中仍然必须采用表达式的完整表达方式,而不能够采用别名。

    同时含有Group By(分组语句)、Having(分组语句下的条件函数)、Order By(排序语句)三个共存的话,则需要注意他们有一定的书写顺序。通常情况下Order By排序语句必须放置在最后。

    另外需要注意的是,采用Group语句会自动对纪录进行排序。

    如果数据库管理员对于这个排序结果不满意的话,就需要通过Order By子句再来对显示结果进行排序。不过这里需要注意的是,本身分组等子句就需要对纪录进行排序并进行一定的业务逻辑处理,此时会耗费比较多的数据库资源。

    如果想把某个字段当作第一顺序排序的话,则只需要把这个字段放置在分组语句中的第一个参数即可。

    在使用group by 时,有一个规则需要遵守,即出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。(select中的字段不可以单独出现,必须出现在group语句中或者在组函数中。)

    Group By子句与Where子句是不兼容的。

    查询语句的select 和group by ,having 子句是聚组函数唯一出现的地方,在where 子句中不能使用聚组函数。

    where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 
    having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

  • 相关阅读:
    Swift和Objective-C混编注意
    【算法设计与数据结构】为何程序员喜欢将INF设置为0x3f3f3f3f?(转)
    baidu网盘下载神器 Pandownload
    为什么大学要学一堆纸上谈兵的课程?(转)
    数据结构实训——校园导游系统
    数据结构实训——哈希表设计
    数据结构实训——员工管理系统
    数据结构实训——成绩统计系统
    数据结构——链表实现一元多项式的表示和加法
    数据结构——顺序表的一些算法
  • 原文地址:https://www.cnblogs.com/smile0120/p/3259007.html
Copyright © 2020-2023  润新知