Re: equivalent of oracle rank() in postgres

From: "Greg Sabino Mullane" <greg(at)turnstep(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: equivalent of oracle rank() in postgres
Date: 2005-03-22 02:52:53
Message-ID: 31bf0e84213104473bc7c80d2b0a9fb3@biglumber.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> Jus wanted the equivalent for rank() as in tis example..

> SELECT *
> FROM (
> SELECT employee_id, last_name, salary,
> RANK() OVER (ORDER BY salary DESC) EMPRANK
> FROM employees)
> WHERE emprank = 3;

There is no direct equivalent to rank(), but there are certainly
other ways to get the results. The above query can be written in
PostgreSQL as:

SELECT employee_id, last_name, salary
FROM employees
WHERE salary =
(SELECT DISTINCT salary FROM employees ORDER BY salary DESC OFFSET 2 LIMIT 1);

- --
Greg Sabino Mullane greg(at)turnstep(dot)com
PGP Key: 0x14964AC8 200503212152
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
-----BEGIN PGP SIGNATURE-----

iD8DBQFCP4hwvJuQZxSWSsgRAoKPAKDE0pB4NueE0Dh9EfJiXw79SvCDoACcC4xb
ydxVgK9DgGHQXJqFIrlHIIo=
=GRIX
-----END PGP SIGNATURE-----

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Theo Galanakis 2005-03-22 05:09:21 Re: C function extending postgres
Previous Message Scott Marlowe 2005-03-22 00:46:17 Re: "Flattening" query result into columns