SQL over my head...

Поиск
Список
Период
Сортировка
От Gregory Brauer
Тема SQL over my head...
Дата
Msg-id 3CE40413.8050101@wildbrain.com
обсуждение исходный текст
Ответы Re: SQL over my head...  ("Joel Burton" <joel@joelburton.com>)
Список pgsql-sql
I've got a rather difficult query that I'm hoping someone can help with.

I have two tables, foo and bar.

I'll just speak SQL...

CREATE TABLE foo  (    id           serial primary key,    attr_a       int4 not null,    attr_b       int4 not null,
bar_id       int4 not null,
 
    unique(attr_a , attr_b, bar_id),
    foreign key(bar_id) references bar(id)  );

CREATE TABLE bar  (    id           serial primary key,    attr_a       int4 not null,    ts           timestamp not
null );
 


What I want to do is find all of the foo.id's where the
foo.bar_id in that row points to a bar where the bar.ts
is the most recent time that is before the current time
among the sets of identical combiniations of foo.attr_a,
foo.attr_b and bar.attr_a.

Said another way...

If I find the 3 item sets of foo.attr_a, foo._attr_b,
and the bar.attr_a that a foo.bar_id points to, and sort
them into groups where the the three values are the same,
I want, as a result, one item from each of the groups
where the time is the maximum of that group which is
still earlier than the current time.

Is this possible?  I'd appreciate any help anyone can give.

Thanks.

Greg Brauer
greg@wildbrain.com



В списке pgsql-sql по дате отправления:

Предыдущее
От: Josh Berkus
Дата:
Сообщение: Constraint problem
Следующее
От: Stephan Szabo
Дата:
Сообщение: Re: Constraint problem