Funkcje okna i bardziej „lokalna” agregacja

Załóżmy, że mam tę tabelę:

select * from window_test;

 k | v
---+---
 a | 1
 a | 2
 b | 3
 a | 4

Ostatecznie chcę uzyskać:

 k | min_v | max_v
---+-------+-------
 a | 1     | 2
 b | 3     | 3
 a | 4     | 4

Ale byłbym równie szczęśliwy mogąc to uzyskać (ponieważ mogę to łatwo filtrować)distinct):

 k | min_v | max_v
---+-------+-------
 a | 1     | 2
 a | 1     | 2
 b | 3     | 3
 a | 4     | 4

Czy jest to możliwe dzięki funkcjom okna PostgreSQL 9.1+? Próbuję zrozumieć, czy mogę go użyć do oddzielnej partycji dla pierwszego i ostatniego wystąpieniak=a w tej próbce (zamówione przezv).

questionAnswers(3)

yourAnswerToTheQuestion