Thread: complex column definition in query

complex column definition in query

From
Seb
Date:
Hi,

Say we have a table:

SELECT * FROM weather;    city      | temp_lo | temp_hi | prcp  
---------------+---------+---------+-------San Francisco |      46 |      50 | 0.25 San Francisco |      43 |      57 |
  0 Hayward       |      37 |      54 |      Hayward       |      30 |      58 |      Somewhere     |      25 |      60
|     Somewhere     |      28 |      50 |      
 
(6 rows)

I'm struggling to build a query with a column temp, where the first row
is the lowest temp_lo followed by all the temp_hi for each city.  So
this would be the output:
    city      | temp  
---------------+------San Francisco |   43San Francisco |   50 San Francisco |   57 Hayward       |   30Hayward       |
 54 Hayward       |   58 Somewhere     |   25Somewhere     |   60 Somewhere     |   50 
 
(6 rows)

Any ideas appreciated!  Thanks.


Cheers,

-- 
Seb



Re: complex column definition in query

From
"A. Kretschmer"
Date:
In response to Seb :
> Hi,
> 
> Say we have a table:
> 
> SELECT * FROM weather;
>      city      | temp_lo | temp_hi | prcp  
> ---------------+---------+---------+-------
>  San Francisco |      46 |      50 | 0.25 
>  San Francisco |      43 |      57 |    0 
>  Hayward       |      37 |      54 |      
>  Hayward       |      30 |      58 |      
>  Somewhere     |      25 |      60 |      
>  Somewhere     |      28 |      50 |      
> (6 rows)
> 
> I'm struggling to build a query with a column temp, where the first row
> is the lowest temp_lo followed by all the temp_hi for each city.  So
> this would be the output:
> 
>      city      | temp  
> ---------------+------
>  San Francisco |   43
>  San Francisco |   50 
>  San Francisco |   57 
>  Hayward       |   30
>  Hayward       |   54 
>  Hayward       |   58 
>  Somewhere     |   25
>  Somewhere     |   60 
>  Somewhere     |   50 
> (6 rows)
> 
> Any ideas appreciated!  Thanks.

test=# select * from weather ;    city      | temp_lo | temp_hi
---------------+---------+---------San Francisco |      46 |      50San Francisco |      43 |      57Hayward       |
 37 |      54Hayward       |      30 |      58
 
(4 rows)

test=*# select city, min(temp_lo) as temp from weather group by city union all select city, temp_hi from weather order
by1,2;    city      | temp
 
---------------+------Hayward       |   30Hayward       |   54Hayward       |   58San Francisco |   43San Francisco |
50SanFrancisco |   57
 
(6 rows)



HTH, Andreas
-- 
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID:   0x3FFF606C, privat 0x7F4584DA   http://wwwkeys.de.pgp.net


Re: complex column definition in query

From
Seb
Date:
On Wed, 3 Jun 2009 07:04:32 +0200,
"A. Kretschmer" <andreas.kretschmer@schollglas.com> wrote:

> In response to Seb :
>> Hi,

>> Say we have a table:

>> SELECT * FROM weather; city | temp_lo | temp_hi | prcp
>> ---------------+---------+---------+------- San Francisco | 46 | 50 |
>> 0.25 San Francisco | 43 | 57 | 0 Hayward | 37 | 54 | Hayward | 30 |
>> 58 | Somewhere | 25 | 60 | Somewhere | 28 | 50 | (6 rows)

>> I'm struggling to build a query with a column temp, where the first
>> row is the lowest temp_lo followed by all the temp_hi for each city.
>> So this would be the output:

>> city | temp ---------------+------ San Francisco | 43 San Francisco |
>> 50 San Francisco | 57 Hayward | 30 Hayward | 54 Hayward | 58
>> Somewhere | 25 Somewhere | 60 Somewhere | 50 (6 rows)

>> Any ideas appreciated!  Thanks.

> test=# select * from weather ; city | temp_lo | temp_hi
> ---------------+---------+--------- San Francisco | 46 | 50 San
> Francisco | 43 | 57 Hayward | 37 | 54 Hayward | 30 | 58 (4 rows)

> test=*# select city, min(temp_lo) as temp from weather group by city
> union all select city, temp_hi from weather order by 1,2; city | temp
> ---------------+------ Hayward | 30 Hayward | 54 Hayward | 58 San
> Francisco | 43 San Francisco | 50 San Francisco | 57 (6 rows)

Thanks to all that responded on and off list.  Is it necessary to ensure
that the "FROM" part of the two queries are exactly the same (the real
case scenario involves 3 tables)?

Cheers,

-- 
Seb



Re: complex column definition in query

From
"A. Kretschmer"
Date:
In response to Seb :
> 
> Thanks to all that responded on and off list.  Is it necessary to ensure
> that the "FROM" part of the two queries are exactly the same (the real

No, but both queries should return the same columns (count, typ, order).

Andreas
-- 
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID:   0x3FFF606C, privat 0x7F4584DA   http://wwwkeys.de.pgp.net