Re: Probably simple answer

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Andrew Gould <andrewgould(at)yahoo(dot)com>
Cc: postgresql <pgsql(at)symcom(dot)com>, Al Kirkus <Al(at)dist102(dot)k12(dot)il(dot)us>, <pgsql-general(at)postgresql(dot)org>
Subject: Re: Probably simple answer
Date: 2001-11-08 23:41:04
Message-ID: Pine.LNX.4.30.0111082210280.643-100000@peter.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Andrew Gould writes:

> I think he simply wants the rows of the result set
> numbered from 1 to whatever the last row is. This is
> useful for referencing rows when discussing reports.
> It is also an immense help when calculating a record's
> statistical percentile ranking.
>
> Doing it in a table is no problem. But how do you
> create one dynamically in a select query?

It's not easily possible.

Even if you were to write a server-side function that would implement such
a counter, there is no guarantee that the rows would be returned in the
order that the function is called in. (Depending on how you express the
query it can be very likely, but there is no guarantee.)

It gets worse if you use ORDER BY or DISTINCT. Then the problem amounts
to adding a column to the result set after sorting, which is not possible
in the SQL query model.

So by far the easiest choice is to keep this counter in the client
application as you loop through the result set.

--
Peter Eisentraut peter_e(at)gmx(dot)net

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Andrew Gould 2001-11-09 01:01:16 Re: Probably simple answer
Previous Message Antoine Reid 2001-11-08 23:38:23 Re: OID's as Primary Keys