【问题标题】:what does the "()" do within an rank statement“()”在等级声明中做了什么
【发布时间】:2018-11-06 15:57:24
【问题描述】:

只是好奇“()”在“rank ()”语句中的作用以及我如何应用它们。

例如,以下是标准排名查询,但我从未在“OVER”关键字后面的括号中填充“()”,我很好奇它的目的是什么?

SELECT RANK() OVER (ORDER BY col1 DESC)
FROM DUAL;

【问题讨论】:

  • 查看文档RANK
  • 没有很好地解释我提出的问题
  • @jackd102 - 您可能希望从不同的角度处理您的陈述。您可以说“我对文档的理解不够好,无法将其应用于我的问题”。但是您当前的断言也意味着 _I_ 无法回答您阅读该文档的问题。作为生活中的指导原则,在断言你周围的世界是错误的或有缺陷之前,假设你是错误的或你不理解......
  • 文档显示它们是分析版本语法的必需部分,中间没有任何内容。该页面中的"see also" link 还显示了arguments 是可选的一般语法-“分析函数采用0 到3 个参数”。
  • 括号是语法的一部分,是必需的。如果您将其用作分析函数,则不必填充它们。话虽如此,它似乎确实接受了一个或多个参数,在这种情况下它的行为会有所不同。

标签: sql oracle window-functions


【解决方案1】:

RANK() 是一个不带参数的函数。

调用函数(通常)需要括号。他们只是表明这是一个函数调用。在这种情况下,该函数需要窗口框架的其余部分,因此需要OVER

【讨论】:

    猜你喜欢
    • 2010-12-28
    • 2017-02-27
    • 1970-01-01
    • 2018-12-19
    • 2016-05-30
    • 2023-04-06
    • 2021-11-19
    • 2014-08-21
    • 1970-01-01
    相关资源
    最近更新 更多