Ordinal value of row within set returned by a query? - Mailing list pgsql-sql

From Randall Lucas
Subject Ordinal value of row within set returned by a query?
Date
Msg-id 9AE98E9A-70FE-11D7-9BCD-000A957653D6@tercent.net
Whole thread Raw
Responses Re: Ordinal value of row within set returned by a query?  (Tom Lane <tgl@sss.pgh.pa.us>)
List 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 by date:

Previous
From: Manfred Koizar
Date:
Subject: Re: getting rid of "Adding missing FROM-clause entry...."
Next
From: Wei Weng
Date:
Subject: Re: IN Qeury Problem