http://www.postgresql.org/docs/devel/static/sql-select.html
Either I'm confused about the syntax description rules or the documentation for this aspect of window definitions is wrong. The expression: [ RANGE | ROWS ] BETWEEN frame_start AND frame_end means that the specification of range or rows is optional - but that doesn't appear to be the case... The documentation should read: { RANGE | ROWS } BETWEEN frame_start AND frame_end Same goes for the bare frame_start specification preceding the between version. The bare version looks funny without tag but "ORDER BY idx BETWEEN 5 PRECEDING AND CURRENT ROW" isn't obviously wrong until you get a syntax error... David J.