Re: Basic SQL question and kudos

From: Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>
To: Dennis Gearon <gearond(at)sbcglobal(dot)net>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Basic SQL question and kudos
Date: 2010-10-06 04:13:57
Message-ID: 4CABF785.9060704@postnewspapers.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 10/06/2010 12:31 AM, Dennis Gearon wrote:
> I need to get a join across about 8 tables to only return rows for the MAX date in one of the tables for all otherwise identical return results. I am trying to get the most recent edit of normalized records that are composed of elements from all the tables. There could be 1 to 100+ successive edits to the normalized/multi table record. The will be approximately 65,000 total records for now, 100,000,000s later.
>
> If I make one of the values in the select statement be MAX(the date), does that automatically do grouping on 'the date' or will I only get ONE row total returned?

If I understand what you're proposing correctly, I don't think it'll work.

What you need to do is use a subquery to obtain the max of the field of
interest, and filter in your WHERE clause so you only return results
when the selected value is the maximum for that field.

It's hard to be more specific with a fairly general question like this,
but if I'm understanding you right this is how I'd start.

--
Craig Ringer

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Konstantin Izmailov 2010-10-06 04:40:19 Re: Is there a logical reason for 25P02?
Previous Message Josh Kupershmidt 2010-10-06 03:45:36 Re: How do I write this query? Distinct, Group By, Order By?