Re: GROUP BY, ORDER & LIMIT ?

Поиск
Список
Период
Сортировка
От David Wilson
Тема Re: GROUP BY, ORDER & LIMIT ?
Дата
Msg-id e7f9235d0805061055s6e0cef82u480d4bfa3db8a521@mail.gmail.com
обсуждение исходный текст
Ответ на GROUP BY, ORDER & LIMIT ?  ("Kynn Jones" <kynnjo@gmail.com>)
Список pgsql-general
select class, size from X t1 where size in (select size from X t2
where t2.class=t1.class order by size desc limit 5);

On Tue, May 6, 2008 at 1:22 PM, Kynn Jones <kynnjo@gmail.com> wrote:

> Suppose table X has two columns: class (TEXT) and size (INT).  I want a
> listing showing the (up to) 5 largest values of "size" for each value of
> "class" (for some values of "class" the total number of available records
> may be less than 5).
>
> What would be the simplest way to achieve such a listing?  It seems like
> something one could do with GROUP BY, ORDER, and LIMIT, but I can't figure
> out the right syntax for this query.

Warning, this is typed directly into mail:
select class, size from X t1 where size in (select size from X t2
where t2.class=t1.class order by size desc limit 5);

That should do the trick. The only problem is if you've got duplicated
size values, you could end up with more than 5 per class.

--
- David T. Wilson
david.t.wilson@gmail.com

В списке pgsql-general по дате отправления:

Предыдущее
От: "Kynn Jones"
Дата:
Сообщение: GROUP BY, ORDER & LIMIT ?
Следующее
От: hubert depesz lubaczewski
Дата:
Сообщение: Re: GROUP BY, ORDER & LIMIT ?