Re: DISTINCT ... ORDER BY

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: DISTINCT ... ORDER BY
Дата
Msg-id 20031105100059.L6295@megazone.bigpanda.com
обсуждение исходный текст
Ответ на Re: DISTINCT ... ORDER BY  (Nabil Sayegh <postgresql@e-trolley.de>)
Ответы Re: DISTINCT ... ORDER BY  (Nabil Sayegh <postgresql@e-trolley.de>)
Список pgsql-novice
On Wed, 5 Nov 2003, Nabil Sayegh wrote:

> Stephan Szabo wrote:
>
> >>should return:
> >>
> >>myDistinctOrderedCol
> >>--------------------
> >>a
> >>c
> >>b
> >>
> >>The problem is that DISTINCT complains about ORDER BY entries not being in the target list.
> >
> >
> > Right, because given this data:
> > col1 | col2
> >  a   |  b
> >  b   |  c
> >  b   |  a
> >
> > what ordering should
> >  select distinct col1 from tab order by col2
> > give you?
>
> I want it to just return 1 column ;)
>
> > Does it put b first because there's a col2 with a, or b second because
> > there's a col2 with b or is it indeterminate?
>
> It shall not mention col2 at all.
> The idea is to
> 1. ORDER BY expressions
> 2. Pick only 1 column
> 3. make this column distinct without losing the sort order

You can either use something like the distinct on extension with
subselects or some variation on group by.  Both of these involve
understanding however, which row you want out when you're going to
be dropping rows.

Your step 3 above isn't well defined in general.  There's no single place
in the sort order for a value of a column being distincted when the value
occurs multiple times.  In the data above, col1='b' occurs twice in the
sort order and you need to give an indication of which place in the sort
order you want to use.

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

Предыдущее
От: Bruno Wolff III
Дата:
Сообщение: Re: DISTINCT ... ORDER BY
Следующее
От: "Corey W. Gibbs"
Дата:
Сообщение: Remove Unused Blobs?