Re: Create a table B with data coming from table A - Mailing list pgsql-general

From A. Kretschmer
Subject Re: Create a table B with data coming from table A
Date
Msg-id 20070612072706.GA22910@a-kretschmer.de
Whole thread Raw
In response to Create a table B with data coming from table A  ("lhaj.merigh@gmail.com" <lhaj.merigh@gmail.com>)
List pgsql-general
am  Mon, dem 11.06.2007, um 21:23:59 -0000 mailte lhaj.merigh@gmail.com folgendes:
> My original table is like that:
>
> ID    A1    A2    A3    cnt
> 1234    1    0    0    4
> 1234    1    0    1    8
> 1234    1    1    1    5
> 1235    1    0    0    6
> 1235    1    0    1    7
> 1235    1    1    1    12
>
> I have to create a new table B:
>
> ID    B1    B2    B3    S
> 1234    4    8    5    17
> 1235    6    7    12    25
>
> The combination (A1=1,A2=0,A3=0) gives B1
> The combination (A1=1,A2=0,A3=0) gives B2
> The combination (A1=1,A2=1,A3=1) gives B3
>
> S = B1+B2+B3
>
> I think it's a classical problem, but i can't see to problem key


test=*# select * from tab_a;
  id  | a1 | a2 | a3 | cnt
------+----+----+----+-----
 1234 |  1 |  0 |  0 |   4
 1234 |  1 |  0 |  1 |   8
 1234 |  1 |  1 |  1 |   5
 1235 |  1 |  0 |  0 |   6
 1235 |  1 |  0 |  1 |   7
 1235 |  1 |  1 |  1 |  12
(6 rows)

test=*# select id, b1,b2,b3, sum(b1+b2+b3) as s from (select id,
sum(case when a1=1 and a2=0 and a3=0 then cnt else 0 end) as b1,
sum(case when a1=1 and a2=0 and a3=1 then cnt else 0 end) as b2,
sum(case when a1=1 and a2=1 and a3=1 then cnt else 0 end) as b3 from
tab_a group by id order by id) foo group by id, b1, b2, b3 order by id;
  id  | b1 | b2 | b3 | s
------+----+----+----+----
 1234 |  4 |  8 |  5 | 17
 1235 |  6 |  7 | 12 | 25
(2 rows)



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

pgsql-general by date:

Previous
From: "lhaj.merigh@gmail.com"
Date:
Subject: Create a table B with data coming from table A
Next
From: "Paul Bruin"
Date:
Subject: question regarding postgres