首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL之间的范围

SQL之间的范围
EN

Stack Overflow用户
提问于 2014-08-08 08:11:58
回答 3查看 1K关注 0票数 0

我有这个:

代码语言:javascript
运行
复制
 SELECT 

 firstname, lastname, Sexe, Weight,
 sum(E.Weight) OVER (ORDER BY E.Height 
                     RANGE BETWEEN 10 PRECEDING AND 5 FOLLOWING ) AS SumHeight

 FROM HR.Employees AS E
 ORDER BY E.Height

但我知道这个错误:

范围仅支持无界和当前行窗口框架分隔符。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-08 08:33:09

这个链接 (That)显示:

前面:指定用于指示当前行之前的行数或值的值。此规格不允许使用范围。

因此,在范围规范中,您的和在范围内的规范只能使用无界的前一行,分别使用后面的“当前行”。

您可能在寻找行i/o范围吗?

票数 0
EN

Stack Overflow用户

发布于 2014-08-08 08:27:06

大致上是这样说的--你必须在一个范围的末端有无界的或当前的行。

你不能做你想做的事。

票数 0
EN

Stack Overflow用户

发布于 2014-08-08 08:55:23

你应该使用ROWS而不是RANGE

代码语言:javascript
运行
复制
SELECT 
 firstname, lastname, Sexe, Weight,
 SUM(E.Weight) OVER (ORDER BY E.Height 
                 ROWS BETWEEN 10 PRECEDING AND 5 FOLLOWING ) AS SumHeight
 FROM HR.Employees AS E
 ORDER BY E.Height

否则,如果您必须使用RANGE,那么您必须使用它所建议的内容,即使用UNBOUNDED和/或CURRENT_ROW分隔符:

代码语言:javascript
运行
复制
SELECT 
 firstname, lastname, Sexe, Weight,
 SUM(E.Weight) OVER (ORDER BY E.Height 
                 RANGE UNBOUNDED PRECEDING) AS SumHeight
 FROM HR.Employees AS E
 ORDER BY E.Height

当然,上面的内容并不能满足您的需要,而只是向您展示了使用它的可能方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25198816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档