pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Michael Glaesemann <grzm@seespotcode.net>
To: Richard Huxton <dev@archonet.com>
Cc: Walter Cruz <walter.php@gmail.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: "for SELECT DISTINCT, ORDER BY expressions must appear in select list" - is that the standart or a limitation of postgresql?
Date: Thu, 15 Feb 2007 23:04:04 +0900
Message-ID: <57FD2B24-DB43-4EF7-92D1-3C467641AF9D@seespotcode.net> (raw)
In-Reply-To: <45D46196.2090003@archonet.com>
References: <32cabba0702150319v427d5a25s9a6c7f851576baa2@mail.gmail.com>
	<45D46196.2090003@archonet.com>


On Feb 15, 2007, at 22:35 , Richard Huxton wrote:

> Walter Cruz wrote:
>> SELECT distinct name from test order by number
>> (well, I think that que query doesn't make any sense, but raises  
>> the error :) )
>> The error: ERROR:  for SELECT DISTINCT, ORDER BY expressions must
>> appear in select list is due to a standart implementarion or a design
>> decision of postgres?
>
> I think ORDER BY is defined to take place after DISTINCT, which  
> means there is no meaningful "number" for it to order by. You could  
> arbitrarily choose the first number encountered, but I can't see  
> what sense it would make to order by them.

I believe the reason is that DISTINCT depends on a sort to determine  
uniqueness (distinctness), so it's a implementation detail that if  
you're going to include an ORDER BY, you also need to include the  
same columns in the ORDER BY in the DISTINCT clause. Though I suspect  
Richard is right that ORDER BY takes place after DISTINCT. (My  
cursory attempt at parsing the SQL 2003 draft failed me.)

On further thought, I bet

SELECT DISTINCT name
FROM test
ORDER BY name, number

fails with a different error, one directly supporting Richard's  
conclusion.

Michael Glaesemann
grzm seespotcode net





view thread (5+ messages)  latest in thread

Message-ID: <57FD2B24-DB43-4EF7-92D1-3C467641AF9D@seespotcode.net>
Permalink:  ../57FD2B24-DB43-4EF7-92D1-3C467641AF9D@seespotcode.net/
Also on:    postgresql.org/message-id/57FD2B24-DB43-4EF7-92D1-3C467641AF9D@seespotcode.net

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: grzm@seespotcode.net, dev@archonet.com, walter.php@gmail.com
  Subject: Re: "for SELECT DISTINCT, ORDER BY expressions must appear in select list" - is that the standart or a limitation of postgresql?
  In-Reply-To: <57FD2B24-DB43-4EF7-92D1-3C467641AF9D@seespotcode.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox