Re: Join tables by nearest date?

From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Join tables by nearest date?
Date: 2009-07-28 06:42:25
Message-ID: 20090728064224.GA1868@a-kretschmer.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

In response to Nick :
> Is it possible to join two tables by the nearest date? For example how
> could I find out where the user was on their birthday?
>
> users (id, name, birthday)
> 1 | one | 2009-07-27
> 2 | two | 2009-07-28
> 3 | three | 2009-07-29
> 4 | four | 2009-07-30
> 5 | five | 2009-07-31
>
> users_locations (id, user_id, created)
> 1 | 1 | 2009-05-21
> 2 | 1 | 2009-06-21
> 3 | 1 | 2009-07-21
> 4 | 2 | 2009-05-10
> 5 | 2 | 2009-06-10
> 6 | 2 | 2009-07-10

test=*# select distinct on (u.id) u.name, u.birthday, l.created,
u.birthday - l.created as diff from users u right join users_locations l
on (u.id=l.user_id) order by u.id, diff;
name | birthday | created | diff
------+------------+------------+------
one | 2009-07-27 | 2009-07-21 | 6
two | 2009-07-28 | 2009-07-10 | 18
(2 rows)

Helps that?

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Sam Mason 2009-07-28 06:49:33 Re: Join tables by nearest date?
Previous Message Devrim GÜNDÜZ 2009-07-28 06:07:21 Re: Building from source vs RPMs