Re: SQL query question

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: SQL query question
Дата
Msg-id 4991.1124065862@sss.pgh.pa.us
обсуждение исходный текст
Ответ на SQL query question  ("Alloni Kramer" <alloni@aposiopesis.net>)
Список pgsql-novice
"Alloni Kramer" <alloni@aposiopesis.net> writes:
> Simplified version of problem:  We have a table.  We'll say it has four
> variables, a, b, c, and squelch, all ints.  I want to get all values of
> these variables for which:

> c is within a certain range of values (call it between 3 and 5).
> for any given value of a, c is maximum.
>  - and -
> for any given value of a for which c is maximal, b is maximum.  That is,
> if we have the values of

This isn't perfectly clear, but I think what you are after can be done
with

    select distinct on (a) * from mytab
    where c between 3 and 5
    order by a, c desc, b desc;

The "weather report" example in the SELECT reference page may be
helpful.

It's possible to do this without the nonstandard DISTINCT ON clause,
but it's a lot more tedious (and I forget just how at the moment ;-))

            regards, tom lane

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

Предыдущее
От: Steve Poe
Дата:
Сообщение: Re: Uploading and loading
Следующее
От: Saranya Sivakumar
Дата:
Сообщение: restart postgres 7.3.2 problem