Das folgende Beispiel zeigt, wie verschiedene Windows in ein und dem selben Statement verbaut werden können. In der SELECT Clause verwenden wir jeweils unterschiedliche Sortierreihenfolgen. Neben einer Zeilennummer errechnen wir einen Rank und einen verdichteten Rank:
test=# SELECT row_number() OVER (ORDER BY tstamp) ,
rank() OVER (ORDER BY revenue),
dense_rank() OVER (ORDER BY revenue),
*
FROM t_business
ORDER BY revenue;
row_number | rank | dense_rank | tstamp | revenue | country
------------+------+------------+------------+---------+---------
2 | 1 | 1 | 2009-10-01 | 9 | AT
3 | 2 | 2 | 2009-10-02 | 12 | AT
6 | 3 | 3 | 2009-10-03 | 15 | AT
8 | 3 | 3 | 2009-10-04 | 15 | AT
4 | 5 | 4 | 2009-10-02 | 18 | DE
1 | 6 | 5 | 2009-10-01 | 20 | DE
5 | 7 | 6 | 2009-10-03 | 23 | DE
7 | 8 | 7 | 2009-10-04 | 26 | DE
(8 rows)