gpt4 book ai didi

sql - 为什么 OVER 子句中的 ORDER BY 也会影响我的结果集?

转载 作者:行者123 更新时间:2023-12-02 08:34:27 24 4
gpt4 key购买 nike

当我写的时候:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com