pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Jasen Betts <jasen@xnet.co.nz>
To: pgsql-sql@postgresql.org
Subject: Re: help on select
Date: 21 Apr 2011 23:15:26 GMT
Message-ID: <ioqdqe$lb0$1@reversiblemaps.ath.cx> (raw)
References: <BANLkTinpuRYSkCkU7ovGojjAhbgXcLAP=g@mail.gmail.com>

On 2011-04-20, Saulo Venâncio <saulo.venancio@gmail.com> wrote:
> --bcaec52e65e9b2f22304a15f3840
> Content-Type: text/plain; charset=ISO-8859-1
> Content-Transfer-Encoding: quoted-printable
>
> Hi guys,
> I need your help.
> I have a table called medidas, in this table i have some ocurrences that ha=
> s
> id_medida(primary key) id_ponto (sec_key) and also datetime field as
> timestamp.
> i would like to know from a set of idpontos, e.g. 10,11,23,24.... how can i
> get the most recent date that is common to all??
> for example, if idponto das date 2011-02-03 but none of others have this
> date in the db i dont want this. i want one common for all..
> thanks.

the trick seems to be to GROUP BY datetime
and to use a HAVING clause to reject the unwanted groups using
count(distinct()) to ensure coverage of the list.

-- a table 

create temp table medidas(id_medida serial,id_ponto integer,datetime timestamp);

-- some test data.

insert into medidas (id_ponto,datetime) select floor(random()*30+1),('today'::timestamp +
floor(generate_series(0,100000)/10)*'1s'::interval);

-- the query:
-- note you need to paste the list of number in two different places
-- in the query, postgres only counts the length once.  

select datetime
  from medidas 
  where id_ponto in (10,11,23,24,27) 
  group by datetime 
  having count(distinct(id_ponto)) = array_length( array[10,11,23,24,27],1)
  order by datetime desc limit 1;
  
-- confirmation

select * from medidas where datetime = (
  select datetime
    from medidas 
    where id_ponto in (10,11,23,24,27) 
    group by datetime 
    having count(distinct(id_ponto)) = array_length(array[10,11,23,24,27],1)
    order by datetime desc limit 1
  )
  order by id_ponto;
  

what's this for?
Are you looking at keno results to see how recently your pick would have won?


-- 
⚂⚃ 100% natural




view thread (3+ messages)

Message-ID: <ioqdqe$lb0$1@reversiblemaps.ath.cx>
Permalink:  ../ioqdqe$lb0$1@reversiblemaps.ath.cx/
Also on:    postgresql.org/message-id/ioqdqe$lb0$1@reversiblemaps.ath.cx

 · 

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: jasen@xnet.co.nz
  Subject: Re: help on select
  In-Reply-To: <ioqdqe$lb0$1@reversiblemaps.ath.cx>

* 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