选择列表中如果包含有列、表达式时,这个列、表达式必须包含在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 条件显示特定的组,也可以使用多个分组标准进行分组。

转载于:https://www.cnblogs.com/smile0120/p/3259007.html

oracle, group by, having, where相关推荐

  1. Shell字符串截取——获取oracle group名字

    业务背景,在执行oracle文件时,需要授权给相应文件,一边我们用chown -Roracle:oraclegroup xxx,不同服务器oraclegroup名字不相同,怎么样获取呢? 方法:首先, ...

  2. oracle group by用法

    分组第一个: SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY dlr_id ORDER BY user_id DESC) rn, u.user ...

  3. oracle rollup 小计,Oracle Group By 用法之 —— Rollup (小计功能)

    Oracle数据库中的rollup配合group by命令使用,可以提供信息汇总功能(与"小计"相似) 表B C1 c2 2005-01-01 1 2005-01-01 3 200 ...

  4. oracle group by 两项,Oracle中group by 的扩展函数rollup、cube、grouping sets

    Oracle的group by除了基本使用方法以外,还有3种扩展使用方法,各自是rollup.cube.grouping sets.分别介绍例如以下: 1.rollup 对数据库表emp.如果当中两个 ...

  5. oracle groupq by,oracle group by 性能优化

    慕田峪9158850 (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving ...

  6. oracle group by sql,Oracle SQL GROUP BY“不是GROUP BY表达式”的帮助

    我有一张table some_table +--------+----------+---------------------+-------+ | id | other_id | date_valu ...

  7. oracle group by升序,group by 不一定排序

    如题,以前,每次人家问我sql执行的时候在什么情况下会出现排序.我的答案中都会含有group by 子句,后来我发现我错了. 下边是一个用到group by子句但没有排序的例子. SQL> se ...

  8. oracle group by 行转列 分析执行计划

    group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句 限制返回的结果集 类似于distinct的去重,可是不明白到底俩区别?功能上grou ...

  9. oracle中的roll up,oracle  group by 与roll up,cube,grouping sets,grouping_id联合使用

    Oracle的group by除了基本用法以外,还有3种扩展用法,分别是rollup.cube.grouping sets. 1 rollup 假设有一个表test,有A.B.C.D.E5列. 如果使 ...

最新文章

  1. 计算机网络(本科)形成性,《计算机组网技术》作业形考网考形成性考核-国家开放大学电大本科...
  2. 快速上手linux玩转典型网络,5- 快速上手Linux玩转典型应用- Linux常用命令
  3. java el表达式 导航规则_javaweb之EL表达式语言
  4. linux java性能监控工具_Linux实时监控工具Nmon使用
  5. 突然不能访问服务器未响应,windows 访问不服务器未响应
  6. Java环境配置出现的问题及解决办法
  7. #includealgorithm里的函数
  8. Kafka:Configured broker.id 2 doesn't match stored broker.id 0 in meta.properties.
  9. 数字锁相环:二阶环的FPGA实现(基于quartus+matlab)
  10. 动漫系列美化XP主题风暴下载
  11. 简体和繁体之间的转换
  12. 中国越野汽车电子市场趋势报告、技术动态创新及市场预测
  13. 【043】光盘库编码
  14. [Hadoop]Hadoop Archives
  15. 西安交大计算机考研软件工程编程题库(二十四)
  16. 27个强大的PDF在线工具,完全免费!
  17. Alex - 用python来写测手速游戏
  18. 再见了,并不美好的 PC 互联网
  19. 牛客网-SQL题库笔记
  20. 从零开始搭建自己的个人博客 ---> 手把手教你搭建自己的炫酷博客

热门文章

  1. js异步提交form表单的解决方案
  2. RabbitMQ 入门系列(3)— 生产者消费者 Python 代码实现
  3. 力所能及的做些自己喜欢和有趣的事
  4. SpringBoot服务上线流程
  5. ionic4中实现时间线
  6. 并发 IO多路复用 select 非asyncio
  7. LeetCode简单题之山羊拉丁文
  8. NVIDIA 自动驾驶软件平台
  9. 旷视MegEngine网络搭建
  10. LCD: 2D-3D匹配算法