| From: | Steve Crawford <scrawford(at)pinpointresearch(dot)com> |
|---|---|
| To: | Randall Skelton <skelton(at)brutus(dot)uwaterloo(dot)ca>, pgsql-general(at)postgresql(dot)org |
| Subject: | Re: returning row numbers in select |
| Date: | 2004-03-15 18:53:29 |
| Message-ID: | 200403151053.29320.scrawford@pinpointresearch.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Wednesday 10 March 2004 12:25 pm, Randall Skelton wrote:
> Is there a way to return an integer row number for a query? Note
> that there may be a large number of rows so I would rather not have
> joined selects...
<snip>
Well...if your result has a unique column you can do something like
this:
steve=# select (select count(*) from bar as barcount where
barcount.sec<=bar.sec) as rownum, sec from bar order by sec;
rownum | sec
--------+------------
1 | 1063966688
2 | 1063966689
3 | 1063966690
4 | 1063966691
5 | 1063966692
6 | 1063966693
7 | 1063966694
8 | 1063966695
9 | 1063966696
10 | 1063966697
11 | 1063966698
12 | 1063966699
13 | 1063966700
14 | 1063966701
15 | 1063966702
16 | 1063966703
17 | 1063966704
18 | 1063966705
As you might guess, this is not a fast query - more of a brute-force
kludge. It's likely that you will be better off postprocessing the
query to select every n records or possibly writing a function that
will handle the situation.
Cheers,
Steve
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Pavel Stehule | 2004-03-15 19:05:11 | Re: boolean to int |
| Previous Message | Mage | 2004-03-15 18:50:19 | boolean to int |