Re: SQL Newbie

From: Bruno Wolff III <bruno(at)wolff(dot)to>
To: Lane Van Ingen <lvaningen(at)esncc(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: SQL Newbie
Date: 2005-08-12 18:04:55
Message-ID: 20050812180455.GA32286@wolff.to
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

> Data in speed history looks like this:
> interface_id updated_time speed
> 1 2005-08-11 08:10:23 450112
> 1 2005-08-11 10:53:34 501120 <---
> 1 2005-08-11 10:58:11 450112
> 2 2005-08-11 08:10:23 450112 <---
> 2 2005-08-11 11:00:44 350234
> 3 2005-08-11 08:10:23 450112 <---
> The rows of speed_history I want back are marked above with ' <--- '.
>
> Query results should look like:
> interface.interface_id
> interface.link_description
> speed_history.updated_time
> speed_history.speed

The main idea is to join a select of max speeds grouped by interface_id
to the interface table.

If the query runs too slow, then you may get better performance having an
index on (interface_id, speed) and using subselects. In this case
you want to select information about all of interfaces and then have
one of the columns be a subselect that selects one (using limit) speed
from rows that have a matching interface_id ordered by interface_id desc,
speed desc. This combination of limit and order by will be faster than
using max.

In response to

  • SQL Newbie at 2005-08-12 15:09:00 from Lane Van Ingen

Browse pgsql-sql by date

  From Date Subject
Next Message Owen Jacobson 2005-08-12 18:05:26 Re: SQL Newbie
Previous Message Nick Stone 2005-08-12 17:57:34 Re: SQL Newbie