Search Postgresql Archives

Re: Create a table B with data coming from table A

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



am  Mon, dem 11.06.2007, um 21:23:59 -0000 mailte lhaj.merigh@xxxxxxxxx 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


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux