Re: [SQL] SELECT DISTINCT ON ... ORDER BY ...
От | Sergei M. Suntsov |
---|---|
Тема | Re: [SQL] SELECT DISTINCT ON ... ORDER BY ... |
Дата | |
Msg-id | Pine.LNX.3.95.990128190906.24385A-100000@ns.uic.nsu.ru обсуждение исходный текст |
Ответ на | SELECT DISTINCT ON ... ORDER BY ... (Thomas Metz <tmetz@gsf.de>) |
Список | pgsql-sql |
I have the same on 6.4.2 Looks like a bug Sincerely, Sergei On Thu, 28 Jan 1999, Thomas Metz wrote: > I have the following problem: > > Assuming the table TEST as follows: > > ID NAME > ----------------- > 1 Alex > 2 Oliver > 1 Thomas > 2 Fenella > > > SELECT DISTINCT ON id id, name FROM test; > produces: > > ID NAME > ----------------- > 1 Alex > 2 Oliver > > > SELECT DISTINCT ON id, name FROM test ORDER BY name; > produces: > > ID NAME > ----------------- > 1 Alex > 2 Fenella > 1 Thomas > > I would have expected only two rows in both queries. I don't care which > names actually appear in the output as long as they are sorted, but > there should no longer be duplicate id's. > > If the table is as follows: > > ID NAME > ----------------- > 2 Oliver > 2 Alex > 1 Thomas > 1 Fenella > > > SELECT DISTINCT ON id id, name FROM test; > produces: > > ID NAME > ----------------- > 1 Thomas > 2 Oliver > > > SELECT DISTINCT ON id, name FROM test ORDER BY name; > produces: > > ID NAME > ----------------- > 2 Alex > 1 Fenella > 2 Oliver > 1 Thomas > > What seems to happen is that from the sorted table, duplicate id's are > eliminated only if they are grouped. If there is no explicit sorting I > assume the DISTINCT performs an implicit sorting on id and then > eliminates records correctly. Is that the correct behaviour? Is there > another (simple) way of getting the results I want? > > I am still using version 6.3 > > tm > -- > Thomas Metz > GSF - National Research Center for Environment and Health > Institute of Mammalian Genetics > >
В списке pgsql-sql по дате отправления: