pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruno Wolff III <bruno@wolff.to>
To: KÖPFERL Robert <robert.koepferl@sonorys.at>
Cc: pgsql-sql@postgresql.org
Subject: Re: VIEW / ORDER BY + UNION
Date: Wed, 23 Feb 2005 13:44:12 -0600
Message-ID: <20050223194412.GA20776@wolff.to> (raw)
In-Reply-To: <ED4E30DD9C43D5118DFB00508BBBA76EB165DC@neptun.sonorys.at>
References: <ED4E30DD9C43D5118DFB00508BBBA76EB165DC@neptun.sonorys.at>

On Wed, Feb 23, 2005 at 19:33:07 +0100,
  KÖPFERL Robert <robert.koepferl@sonorys.at> wrote:
> 
> Otherwise you can treat this as a subselect and suround it with another
> select.
> 
> Like
> select * from (<here goes your ex.>) order by orderno;

That is still a bad idea in this case. He will end up scanning the table
three times to pick up the three days and there will be a sort for each
union to remove duplicates (which there shouldn't be if orderno is a
candidate key).

> 
> C:\> -----Original Message-----
> C:\> From: Bruno Wolff III [mailto:bruno@wolff.to]
> C:\> Sent: Mittwoch, 23. Februar 2005 18:20
> C:\> To: WeiShang
> C:\> Cc: pgsql-sql@postgresql.org
> C:\> Subject: Re: [SQL] VIEW / ORDER BY + UNION
> C:\> 
> C:\> 
> C:\> On Thu, Feb 17, 2005 at 23:46:59 +0800,
> C:\>   WeiShang <thanks@verymuch.com> wrote:
> C:\> > Hi, I have created a view like this :
> C:\> > 
> C:\> > CREATE VIEW v1 AS (SELECT orderno,weekday,time FROM t1,t2 where
> C:\> > t1.orderno=t2.orderno);
> C:\> > 
> C:\> > if I create a SQL statment:
> C:\> > 
> C:\> > (SELECT orderno FROM v1 WHERE weekday='MON' ORDER BY orderno)
> C:\> > UNION
> C:\> > (SELECT orderno FROM v1 WHERE weekday='WED' ORDER BY orderno)
> C:\> > UNION
> C:\> > (SELECT orderno FROM v1 WHERE weekday='FRI' ORDER BY orderno);
> C:\> > 
> C:\> > Will the whole result will be sorted by the field orderno?
> C:\> 
> C:\> If this isn't a made up example, you don't want to do this. You
> C:\> should use IN or OR to select records corresponding to the days
> C:\> of interest and then use ORDER BY to select the ordering.
> C:\> 
> C:\> ---------------------------(end of 
> C:\> broadcast)---------------------------
> C:\> TIP 7: don't forget to increase your free space map settings
> C:\> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org



view thread (5+ messages)

Message-ID: <20050223194412.GA20776@wolff.to>
Permalink:  ../20050223194412.GA20776@wolff.to/
Also on:    postgresql.org/message-id/20050223194412.GA20776@wolff.to

 · 

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: bruno@wolff.to, robert.koepferl@sonorys.at
  Subject: Re: VIEW / ORDER BY + UNION
  In-Reply-To: <20050223194412.GA20776@wolff.to>

* 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