我有这个:
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
但我知道这个错误:
范围仅支持无界和当前行窗口框架分隔符。
发布于 2014-08-08 08:33:09
这个链接 (That)显示:
前面:指定用于指示当前行之前的行数或值的值。此规格不允许使用范围。
因此,在范围规范中,您的和在范围内的规范只能使用无界的前一行,分别使用后面的“当前行”。
您可能在寻找行i/o范围吗?
发布于 2014-08-08 08:27:06
大致上是这样说的--你必须在一个范围的末端有无界的或当前的行。
你不能做你想做的事。
发布于 2014-08-08 08:55:23
你应该使用ROWS
而不是RANGE
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
分隔符:
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
当然,上面的内容并不能满足您的需要,而只是向您展示了使用它的可能方法。
https://stackoverflow.com/questions/25198816
复制相似问题