Re: Novice SQL Question

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Novice SQL Question
Дата
Msg-id 10684.1075778042@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Novice SQL Question  (Terry Lee Tucker <terry@esc1.com>)
Список pgsql-sql
Terry Lee Tucker <terry@esc1.com> writes:
> If I put this where I thought it should go as in:
> select distinct event_code,level from logs join stat on (stat.prime is not 
> null) where order_num = 130680 order by event_date,event_time,event_secs;

> I get the following error:
> ERROR:  For SELECT DISTINCT, ORDER BY expressions must appear in target list

Right.  Think about what SELECT DISTINCT does: it combines all rows with
the same values of event_code and level into a single row.  The group of
rows with a particular pair of event_code/level might contain many
different values of event_date etc.  Which of these values should be
used to sort the combined row?  The result just isn't well-defined in
general.  You need to alter the query so that it completely defines
the result you want.  One way to do that is suggested by the error
message: add the ORDER BY columns into the DISTINCT list.  But that's
not necessarily the way that will get the result you want.
        regards, tom lane


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

Предыдущее
От: Terry Lee Tucker
Дата:
Сообщение: Re: Novice SQL Question
Следующее
От: Russell Shaw
Дата:
Сообщение: Outer join