作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我写的时候:
SELECT deptno,ename, RANK () OVER (PARTITION BY deptno ORDER BY sal DESC) rank
FROM emp
我得到按 sal 和 deptno 排序的结果集,但为什么呢?我没有在主要 ORDER BY
中指定它?
最佳答案
如果您没有指定主ORDER BY
,您收到结果的顺序是未指定的,将是数据库系统认为最简单的顺序。通常假设默认顺序是行存储在磁盘上的物理顺序,但这是不正确的,这只是数据库通常(并非总是)最简单的顺序。
在这种特定情况下,对所有结果进行排序可以更轻松地计算排名,并且仍然会为您提供所需的结果。
关于sql - 为什么 OVER 子句中的 ORDER BY 也会影响我的结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23195611/
我是一名优秀的程序员,十分优秀!