> 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.