Re: How to find out top 3 records in each location - Mailing list pgsql-sql

From Richard Broersma Jr
Subject Re: How to find out top 3 records in each location
Date
Msg-id 452822.24102.qm@web31801.mail.mud.yahoo.com
Whole thread Raw
In response to How to find out top 3 records in each location  ("wen tseng" <went@hteamericas.com>)
Responses Re: How to find out top 3 records in each location
List pgsql-sql
> On PostgreSQL, I have a table like this:
> 
> Item     Location    Sales
>  A            X             10
>  B            X              6
>  C            Y              3
>  D            Y              8
>  E            Y              15
>  F            Y             11
> 
> I'd like to find out top 3 items in each location and put those 3 items as colum values like
> this:
> 
> Location    Top1   Top2   Top3
>   X              A        B
>   Y             E         F        D
> 
> Since PostgreSQL doesn't support TOP, how can I do to get this result?
> Any solution will be appreciated.


Here is what I came up with.  However, I am sure there maybe a better answer.

SELECT A1.location,( select sales  from sales  where location = A1.location  order by sales desc   limit 1) as TOP1,(
selectsales  from sales  where location = A1.location  order by sales desc   limit 1 offset 1) as Top2,( select sales
fromsales  where location = A1.location  order by sales desc  limit 1 offset 2) as Top3
 


FROM( SELECT location  from sales  group by location) AS A1
;


Regards,

Richard Broersma Jr.


pgsql-sql by date:

Previous
From: Andrew Sullivan
Date:
Subject: Re: How to find out top 3 records in each location
Next
From: "lms"
Date:
Subject: Re: How convert UNICODE