Eva*_*oll 0 postgresql syntax aggregate window-functions
聚合和窗口函数的语法令人困惑,这不起作用,
SELECT (max(x)+5) OVER ()
FROM generate_series(1,10) AS t(x);
Run Code Online (Sandbox Code Playgroud)
虽然这有效
SELECT 5+max(x) OVER ()
FROM generate_series(1,10) AS t(x);
Run Code Online (Sandbox Code Playgroud)
如果运算符是可交换的,那很好,但我试图将间隔除以秒(在我的特定情况下,尽管我解决了它)。有没有办法简化这个。
SELECT (max(x)/5) OVER ()
FROM generate_series(1,10) AS t(x);
Run Code Online (Sandbox Code Playgroud)
所以不需要另一个封装查询?这是一个 PostgreSQL 的东西,还是一个 SQL 的东西?有没有办法消除查询的歧义?
小智 5
如果我正确理解你的问题,你试图将窗口函数的结果除以 5。整个窗口函数由MAX(x) OVER ()因此你的查询看起来像这样:
SELECT MAX(x) OVER ()/5 FROM generate_series(1,10) AS t(x);
Run Code Online (Sandbox Code Playgroud)
这将导致 10 行都包含值 2,因为 generate_series 函数会产生 10 行,每行都将包含我们的窗口函数的结果。
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |