Re: [HACKERS] Re: SELECT DISTINCT ON ... ORDER BY ...

Поиск
Список
Период
Сортировка
Искать
От
Oliver Elphick
Тема
Re: [HACKERS] Re: SELECT DISTINCT ON ... ORDER BY ...
Дата
Msg-id
199901291824.SAA24917@linda.lfix.co.uk
Список
Дерево обсуждения
Re: [SQL] Re: [HACKERS] Re: SELECT DISTINCT ON ... ORDER BY ... "jose' soares" <sferac@bo.nettuno.it>
Re: [SQL] Re: [HACKERS] Re: SELECT DISTINCT ON ... ORDER BY ... Herouth Maoz <herouth@oumail.openu.ac.il>
Tom Lane wrote:
  >Thomas Metz  writes:
  >> SELECT DISTINCT ON id id, name FROM test ORDER BY name;
  >> [doesn't work as expected]
  >
  >There have been related discussions before on pg-hackers mail list;
  >you might care to check the list archives.  The conclusion I recall
  >is that it's not real clear how the combination of SELECT DISTINCT
  >on one column and ORDER BY on another *should* work.  Postgres'
  >current behavior is clearly wrong IMHO, but there isn't a unique
  >definition of right behavior, because it's not clear which tuples
  >should get selected for the sort.
  >
  >This "SELECT DISTINCT ON attribute" option strikes me as even more
  >bogus.  Where did we get that from --- is it in the SQL92 standard?

I looked through the standard yesterday and couldn't find it.  It doesn't
seem to be a useful extension, since it does nothing that you can't do
with GROUP BY and seems much less well defined.  For the moment I have
added a brief description to the reference documentation for SELECT.

  >If you SELECT DISTINCT on a subset of the attributes to be returned,
  >then there's no unique definition of which values get returned in the
  >other columns.  In Thomas' example:
 ...
  >Any of these are "DISTINCT ON id", but it's purely a matter of
  >happenstance table order and unspecified implementation choices which
  >one will appear.  Do we really have (or want) a statement with
  >inherently undefined behavior?

We have it; I suggest we don't want it!
 
-- 
Oliver Elphick                                Oliver.Elphick@lfix.co.uk
Isle of Wight                              http://www.lfix.co.uk/oliver
               PGP key from public servers; key ID 32B8FAA1
                 ========================================
     "My son, if sinners entice thee, consent thou not."    
                            Proverbs 1:10 


В списке pgsql-hackers по дате отправления
От: Tom Lane
Дата:
От: Clark Evans
Дата:
FAQ