MSAccess-like Last() with sorting before grouping
От | Octavio Alvarez |
---|---|
Тема | MSAccess-like Last() with sorting before grouping |
Дата | |
Msg-id | 4793.63.84.67.3.1052959804.squirrel@doogie.ods.org обсуждение исходный текст |
Ответы |
Re: MSAccess-like Last() with sorting before grouping
Re: MSAccess-like Last() with sorting before grouping |
Список | pgsql-novice |
Hello! This is my first post to the list. I hope I'm not just blanked out, and asking a question with a simple answer. ;-) I need a query to return the last value of a set of grouped-by records when a column is sorted. For example: TABLE: ( id integer UNIQUE, group_key integer, sort_key integer, data integer ) Say it has the following rows: id | group_key | sort_key | data ----+-----------+----------+------ 1 | 1 | 1 | 1 2 | 1 | 2 | 6 3 | 1 | 5 | 6 4 | 1 | 9 | 2 5 | 2 | 3 | 1 6 | 2 | 4 | 3 7 | 2 | 7 | 3 8 | 3 | 6 | 5 9 | 3 | 3 | 4 (9 rows) I need it to have the following output: id | group_key | sort_key | data ----+-----------+----------+------ 4 | 1 | 9 | 2 7 | 2 | 7 | 3 8 | 3 | 6 | 5 Which is, selecting the top value from sort_key from each different set of group_key. I can't program a last() function because it wouldn't work for group_key=3 in the example. ORDER BY always sorts the results after the grouping. I tried min/max functions but they apply to each column individually. Is there any way I can ask for this info to the SQL server? Thank you very much. -- Octavio Alvarez Piza. E-mail: alvarezp@octavio.ods.org
В списке pgsql-novice по дате отправления: