如题,以前,每次人家问我sql执行的时候在什么情况下会出现排序。我的答案中都会含有group by 子句,后来我发现我错了。

下边是一个用到group by子句但没有排序的例子。

SQL> set autot on

SQL> select * from (select min(rownum) from dual where rownum < 10 group by rownum);

MIN(ROWNUM)

-----------

1

Execution Plan

----------------------------------------------------------

Plan hash value: 3333817076

------------------------------------------------------------------------------

| Id  | Operation             | Name | Rows  | Bytes | Cost (%CPU)| Time     |

------------------------------------------------------------------------------

|   0 | SELECT STATEMENT      |      |     1 |    13 |     2   (0)| 00:00:01 |

|   1 |  VIEW                 |      |     1 |    13 |     2   (0)| 00:00:01 |

|   2 |   SORT GROUP BY NOSORT|      |     1 |       |     2   (0)| 00:00:01 |

|*  3 |    COUNT STOPKEY      |      |       |       |            |          |

|   4 |     FAST DUAL         |      |     1 |       |     2   (0)| 00:00:01 |

------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

3 - filter(ROWNUM<10)

Statistics

----------------------------------------------------------

0  recursive calls

0  db block gets

0  consistent gets

0  physical reads

0  redo size

529  bytes sent via SQL*Net to client

523  bytes received via SQL*Net from client

2  SQL*Net roundtrips to/from client

0  sorts (memory)

0  sorts (disk)

1  rows processed

在执行计划中的 SORT GROUP BY NOSORT 可以看出没有排序。

其实,在这里oracle在执行到group by子句时,发现该处已经是排好序的,故其不在进行sort操作。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26143577/viewspace-750073/,如需转载,请注明出处,否则将追究法律责任。

oracle group by升序,group by 不一定排序相关推荐

  1. R语言dplyr包使用arrange函数、group_by函数、mutate函数生成分组数据的排名(rank)实战(Rank Variable by Group):升序排名、降序排名以及相同排名的处理

    R语言dplyr包使用arrange函数.group_by函数.mutate函数生成分组数据的排名(rank)实战(Rank Variables by Group):升序排名.降序排名以及相同排名的处 ...

  2. oracle分组聚合查询,Oracle中分组查询group by用法规则解析

    本篇文章小编给大家分享一下Oracle中分组查询group by用法规则解析,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Oracle中group by ...

  3. oracle的 listagg() WITHIN GROUP () 函数使用

    oracle的 listagg() WITHIN GROUP () 函数使用 使用条件:数据统计行转列 – 查询部门为20的员工列表[显然是多列显示] SELECT t.DEPTNO,t.ENAME ...

  4. mysql按年月排序group by升序_排序-在MySQL中按GROUP BY名称之前的日期和时间排序

    排序-在MySQL中按GROUP BY名称之前的日期和时间排序 我有这样一张桌子: name date time tom | 2011-07-04 | 01:09:52 tom | 2011-07-0 ...

  5. oracle 创建 temporary tablespace group

    os: centos 7.4 db: oracle 12.1.0.2 oracle 可以对多个 temporary tablespace 包装成 temporary group temporary s ...

  6. Oracle→分组函数、GROUP BY、HAVING、多表查询、连接、外连接、自连接、子查询单行多行、ROWNUM、ANY、ALL、NOT IN(...IS NOT NULL)、条件求和、DUAL

    分组函数 GROUP BY HAVING GROUP BY ROLLUP() 多表查询 等值连接 不等值连接 外连接 自连接 层次查询 子查询 子查询伪劣ROWNUM ROWID NOT IN(-IS ...

  7. mysql group by top_Mysql group by top N的问题 | 学步园

    >>>>> 建表 create table mytable ( person varchar(10), `group` int, age int ); insert in ...

  8. BZOJ 1821: [JSOI2010]Group 部落划分 Group【MST】

    1821: [JSOI2010]Group 部落划分 Group Time Limit: 10 Sec Memory Limit: 64 MB Description 聪聪研究发现,荒岛野人总是过着群 ...

  9. mysql group原理_MySQL Group By 实现原理分析

    [IT168 专稿]由于 GROUP BY 实际上也同样会进行排序操作,而且与 ORDER BY 相比,GROUP BY 主要只是多了排序之后的分组操作.当然,如果在分组的时候还使用了其他的一些聚合函 ...

最新文章

  1. 1102 Invert a Binary Tree 需再做
  2. 《包青天》中的《鸳鸯蝴蝶梦》单元,剧中有一个很漂亮的女子叫“离垢”
  3. 周末话题-元编程(metaprogramming)
  4. PHP中的foreach循环
  5. CentOS配置Tair
  6. mysql的安装真不爽
  7. cypress 的错误消息 - the element has become detached or removed from the dom
  8. STS+Git 项目操作相关
  9. pythonfor循环加2_python中for循环如何实现每次控制变量翻倍
  10. python PEP 487
  11. 【语音去噪】基于matlab基本维纳滤波算法语音去噪【含Matlab源码 570期】
  12. SAI钢笔工具如何使用,入门篇
  13. 摄影欣赏:30幅五光十色的精美秋天风景摄影作品
  14. android 编译
  15. 不需要到健身房的互动健身,so cool
  16. PHP借用Redis消息队列实现高并发下发送邮件功能
  17. 要做单片机课课设的快看过来1:KEIL安装以及C51环境搭建和Protues安装保姆教程
  18. ae 创建图像等高线 蒙版_「PS软件」工具使用,图层蒙版与橡皮擦的应用分析
  19. f下行到什么形成全音_乐理试题二
  20. 蓝牙资讯|2022 年 Q4 全球 TWS 耳机出货量 7900 万部

热门文章

  1. 微型计算机有缺点,PT开口安装微机消谐的优缺点?
  2. hbase shell查询表中某字段不为空的数据量_HBase工作原理
  3. Java数据结构与算法解析(二)——栈
  4. linux基础练习,Linux基础指令练习
  5. oracle怎么变为整数,如何在Oracle 11g SQL中为char添加整数?(How to add integers to char in Oracle 11g SQL?)...
  6. 基于JAVA+Servlet+JSP+MYSQL的实验室机房预约管理系统
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的手表销售系统
  8. 基于JAVA+Servlet+JSP+MYSQL的客户充值缴费管理系统
  9. 剑指offer:二叉树打印成多行(层次遍历)
  10. python用%来处理字符串