Clarify documentation about "peer" rows in window functions

Peer rows are matching rows when ORDER BY is specified.

Report by arnaud.mouronval@gmail.com, David G Johnston

Backpatch through 9.4
This commit is contained in:
Bruce Momjian 2014-09-05 19:01:26 -04:00
parent a6283f9706
commit a6d9b331aa
3 changed files with 8 additions and 6 deletions

View File

@ -13048,7 +13048,8 @@ SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
<firstterm>Window functions</firstterm> provide the ability to perform <firstterm>Window functions</firstterm> provide the ability to perform
calculations across sets of rows that are related to the current query calculations across sets of rows that are related to the current query
row. See <xref linkend="tutorial-window"> for an introduction to this row. See <xref linkend="tutorial-window"> for an introduction to this
feature. feature, and <xref linkend="syntax-window-functions"> for syntax
details.
</para> </para>
<para> <para>

View File

@ -792,8 +792,9 @@ UNBOUNDED FOLLOWING
The default framing option is <literal>RANGE UNBOUNDED PRECEDING</>, The default framing option is <literal>RANGE UNBOUNDED PRECEDING</>,
which is the same as <literal>RANGE BETWEEN UNBOUNDED PRECEDING AND which is the same as <literal>RANGE BETWEEN UNBOUNDED PRECEDING AND
CURRENT ROW</>; it sets the frame to be all rows from the partition start CURRENT ROW</>; it sets the frame to be all rows from the partition start
up through the current row's last peer in the <literal>ORDER BY</> up through the current row's last peer (a row that <literal>ORDER
ordering (which means all rows if there is no <literal>ORDER BY</>). BY</> considers equivalent to the current row, or all rows if there
is no <literal>ORDER BY</>).
In general, <literal>UNBOUNDED PRECEDING</> means that the frame In general, <literal>UNBOUNDED PRECEDING</> means that the frame
starts with the first row of the partition, and similarly starts with the first row of the partition, and similarly
<literal>UNBOUNDED FOLLOWING</> means that the frame ends with the last <literal>UNBOUNDED FOLLOWING</> means that the frame ends with the last
@ -817,7 +818,7 @@ UNBOUNDED FOLLOWING
results if the <literal>ORDER BY</> ordering does not order the rows results if the <literal>ORDER BY</> ordering does not order the rows
uniquely. The <literal>RANGE</> options are designed to ensure that uniquely. The <literal>RANGE</> options are designed to ensure that
rows that are peers in the <literal>ORDER BY</> ordering are treated rows that are peers in the <literal>ORDER BY</> ordering are treated
alike; any two peer rows will be both in or both not in the frame. alike; all peer rows will be in the same frame.
</para> </para>
<para> <para>

View File

@ -1877,7 +1877,7 @@ UNBOUNDED FOLLOWING
first <firstterm>peer</> row (a row that <literal>ORDER BY</> considers first <firstterm>peer</> row (a row that <literal>ORDER BY</> considers
equivalent to the current row), while a <replaceable>frame_end</> of equivalent to the current row), while a <replaceable>frame_end</> of
<literal>CURRENT ROW</> means the frame ends with the last equivalent <literal>CURRENT ROW</> means the frame ends with the last equivalent
peer. In <literal>ROWS</> mode, <literal>CURRENT ROW</> simply means <literal>ORDER BY</> peer. In <literal>ROWS</> mode, <literal>CURRENT ROW</> simply means
the current row. the current row.
</para> </para>
@ -1897,7 +1897,7 @@ UNBOUNDED FOLLOWING
which is the same as <literal>RANGE BETWEEN UNBOUNDED PRECEDING AND which is the same as <literal>RANGE BETWEEN UNBOUNDED PRECEDING AND
CURRENT ROW</>. With <literal>ORDER BY</>, this sets the frame to be CURRENT ROW</>. With <literal>ORDER BY</>, this sets the frame to be
all rows from the partition start up through the current row's last all rows from the partition start up through the current row's last
peer. Without <literal>ORDER BY</>, all rows of the partition are <literal>ORDER BY</> peer. Without <literal>ORDER BY</>, all rows of the partition are
included in the window frame, since all rows become peers of the current included in the window frame, since all rows become peers of the current
row. row.
</para> </para>