For the purposes of this discussion, row_number() is just as good
as rank(), and its behavior is easier to understand and describe.
So let's switch the examples to using row_number().
Along the way to checking the results given in the tutorial,
I found it helpful to extract the empsalary table we use in the
regression tests, which is evidently the same data that was used
to make these results. So I shoved that into advanced.source
to improve the coverage of that file a little. (There's still
several pages of the tutorial that are not included in it,
but at least now 3.5 Window Functions is covered.)
Suggested-by: "David G. Johnston" <david.g.johnston@gmail.com>
Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/173737973383.1070.1832752929070067441@wrigleys.postgresql.org
Seem to remember someone posting to one of the lists a while back
that the tutorial code wouldn't compile and/or run. Found four
problems with it that will let it run.
1. Tutorial makefile had a recursive use of DLOBJS.
2. Some tutorial needed semi-colons added to many statements.
3. Complex tutorial didn't clean up after itself.
4. Advanced had a time-travel example. Commented it out and
put a line pointing the user to contrib/spi/README.