Re: Diffcult query - Mailing list pgsql-sql

From Harald Fuchs
Subject Re: Diffcult query
Date
Msg-id pusmtfohik.fsf@srv.protecting.net
Whole thread Raw
In response to Diffcult query  ("Dan Winslow" <d.winslow@cox.net>)
List pgsql-sql
In article <d9Iea.117330$JE5.48428@news2.central.cox.net>,
"Dan Winslow" <d.winslow@cox.net> writes:

> Hi folks. This is giving me fits. I feel like it oughta be simple, but
> apparantly its not...I think.

> Given a table :

> create table tablea (
>   code1 varchar(32),
>   code2 varchar(32),
>   cost    int
> );

> and the rows

> code1    code2    cost
> ----------------------------------
> "aaa"        "bbb"    2
> "ddd"        "eee"    3
> "bbb"        "aaa"    6
> "ggg"         "hhh"    4

> I need a ( preferably single ) query that will sum the costs for all unique
> pairs of codes, without regard to column order. That is, for summing
> purposes, rows 1 and 3 are identical, and should produce the sum of 8 for
> the unordered pair("aaa","bbb"). It should also, of course, prevent the case
> where ("bbb","aaa") is considered a seperate pair. Any ideas would be much
> appreciated.

How about this one?
 SELECT CASE WHEN code1 < code2 THEN code1 ELSE code2 END ||        '\0' ||        CASE WHEN code1 < code2 THEN code2
ELSEcode1 END AS codes,        SUM(cost) AS costs FROM tablea GROUP BY codes;
 



pgsql-sql by date:

Previous
From:
Date:
Subject: Re: newline character in SQL
Next
From: Sethi Tarun-ETS017
Date:
Subject: Re: newline character in SQL