Re: Can EXCEPT Be Used for To Solve This Problem?

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Lane Van Ingen <lvaningen(at)esncc(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Can EXCEPT Be Used for To Solve This Problem?
Date: 2005-08-24 23:52:23
Message-ID: 20050824235223.GA19076@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Wed, Aug 24, 2005 at 05:34:49PM -0600, Michael Fuhr wrote:
> On Wed, Aug 24, 2005 at 04:47:16PM -0400, Lane Van Ingen wrote:
> > Given the following data in a table named 'foo' :
> > id update_time description
> > 2 2005-08-24 00:10:00 transaction1
> > 2 2005-08-24 00:22:00 transaction2
> > 2 2005-08-24 00:34:00 transaction3
> > 2 2005-08-24 00:58:00 transaction4
> >
> > I want to select 2nd oldest transaction from foo (transaction 3). The

I just noticed that transaction3 isn't the 2nd oldest, it's the 3rd
oldest and the 2nd newest. What are you really trying to do?

> > solution below
> > works, but I think there may be a better way. Does anyone else have a better
> > idea?
>
> Do you want the 2nd oldest transaction from the entire table? If
> so then the following should work:
>
> SELECT *
> FROM foo
> ORDER BY update_time
> OFFSET 1
> LIMIT 1;

Flaw: this query assumes that the 2nd record in the ordered result
set is the 2nd oldest transaction, which isn't necessarily true.
If the update_time values aren't unique, then the 2nd record could
have the oldest time and not the 2nd oldest time. Is that why you
were using EXCEPT? To exclude all instances of the oldest time?

--
Michael Fuhr

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Bo Lorentsen 2005-08-25 06:51:59 Re: Number of rows in a cursor ?
Previous Message Michael Fuhr 2005-08-24 23:34:49 Re: Can EXCEPT Be Used for To Solve This Problem?