Re: SQL Newbie - Mailing list pgsql-sql

From Nick Stone
Subject Re: SQL Newbie
Date
Msg-id 20050812175529.82D7F24F3B9@smtp.nildram.co.uk
Whole thread Raw
In response to SQL Newbie  ("Lane Van Ingen" <lvaningen@esncc.com>)
Responses Re: SQL Newbie  ("Owen Jacobson" <ojacobson@osl.com>)
Re: SQL Newbie  (Bruno Wolff III <bruno@wolff.to>)
List pgsql-sql
Hope this helps

SELECT*
FROMspeed_history as outside etc..
WHERE(speed = (    SELECT        speed    FROM        speed_history as inside etc..    WHERE        (outside.interface
=inside.interface)    LIMIT 1    ORDER BY        speed DESC    ))
 

Hopefully you get the idea - basically it's a corelated sub-query - very
useful

Nick

-----Original Message-----
From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql-owner@postgresql.org]
On Behalf Of Lane Van Ingen
Sent: 12 August 2005 16:09
To: pgsql-sql@postgresql.org
Subject: [SQL] SQL Newbie

It seems to me that I should be able to do this, but after 5 hrs of trying,
I can't figure this one out.

I could do this in two queries, but seems like I should be able to do this
in one. What I am trying to do:Find the highest speed at which each interface of a router has run over
time.

I have three tables, two of which (interface, speed_history) are being used
in this query (primary / foreign key fields noted as PK / FK):
 router    -> 1:M -> interface         -> 1:M -> speed_history ------------------- ---------------------------
--------------------------
- router_no (int2) PK interface_id (int4) PK      interface_id (int4) PK name (varchar)      router_no (int2) FK
updated_time (timestamp)
 
PK                     link_description (varchar)  speed        (int4)

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-1108: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
 



---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster





pgsql-sql by date:

Previous
From: Ilene
Date:
Subject: Left join pa on dal resulting in null
Next
From: Bruno Wolff III
Date:
Subject: Re: SQL Newbie