Limite agrupado no PostgreSQL: mostra as primeiras N linhas para cada grupo?
Eu preciso tomar as primeiras N linhas para cada grupo, ordenadas por coluna personalizada.
Dada a seguinte tabela:
db=# SELECT * FROM xxx;
id | section_id | name
----+------------+------
1 | 1 | A
2 | 1 | B
3 | 1 | C
4 | 1 | D
5 | 2 | E
6 | 2 | F
7 | 3 | G
8 | 2 | H
(8 rows)
Eu preciso das primeiras 2 linhas (ordenadas pornome) para cadasection_id, ou seja, um resultado semelhante a:
id | section_id | name
----+------------+------
1 | 1 | A
2 | 1 | B
5 | 2 | E
6 | 2 | F
7 | 3 | G
(5 rows)
Eu estou usando o PostgreSQL 8.3.5.