''         ,但是右边有'行2前面的'和之前的2个和之后的2个'行? 而且,我如何纠正'之后的第2行? ? 谢谢你的帮助
答案 0 :(得分:0)
使用窗框时,请始终包含框架的两端。
框架rows 2 following
含糊不清。您的意思是rows between current row and 2 following
还是rows between 2 following and unbounded following
?每个都有问题。
第一个是不允许的,因为帧开始必须出现在帧结束之前:
限制是frame_start不能是UNBOUNDED FOLLOWING, frame_end不能是UNBOUNDED PRECEDING,而是frame_end选项 不能出现在上面列表中的早于frame_start选项。
此外,当仅包含帧的一个时间规范时,它被包括作为帧开始。
因此,Postgres将2 following
解释为框架的开头。但是,结尾的默认值是当前行,因此它被解释为rows between 2 following and current row
。因此它产生的错误消息:
42P20:从下一行开始的帧不能以当前行结束