Ordinal value of row within set returned by a query?
От | Randall Lucas |
---|---|
Тема | Ordinal value of row within set returned by a query? |
Дата | |
Msg-id | 9AE98E9A-70FE-11D7-9BCD-000A957653D6@tercent.net обсуждение исходный текст |
Ответы |
Re: Ordinal value of row within set returned by a query?
|
Список | pgsql-sql |
Hi folks, I'm puzzling over whether it is possible within SQL alone to determine the ordinal position of a row within the set returned by a query. It seems clear to me that pgsql "knows" what position in a set a particular tuple holds, since one can OFFSET, ORDER BY, and LIMIT; however, I can't seem to find a function or "hidden field" that will return this. What I would like is something along these lines: I wish to ORDER BY an ordinal field that is likely to be present, but may not be present, and then by a unique value to ensure stability of ordering. Since the ordinal may be absent, I'd like a running total on the side: For example: guys name age ------------------- bob 33 charlie 35 doug 28 ed 33 select name, age, running_total() from guys order by age, name name age running_total() ----------------------------------------- doug 28 1 bob 33 2 ed 33 3 charlie 35 4 I think I could do this by means of creating a temporary table within a plpgsql function, but that seems awful heavy-duty. I have an inkling that there may be an existing pg_ function or field, like oid, which I might call to get this info. Thoughts? Regards, Randall
В списке pgsql-sql по дате отправления: