Thread: Use for loop in stored procedure to join query results
Hello, I have a table similar to the following: id probe value 1 asdf 10 1 qwer 20 1 zxcv 30 2 asdf 40 2 qwer 50 2 zxcv 60 I would like to create a stored procedure or function that will make a view with the data as follows: 1 2 asdf 10 40 qwer 20 50 zxcv 30 60 Does anyone know how to do this? I am attempting to make a stored procedure that... 1. SELECT all distinct "id"s 2. FOR LOOP to iterate over each "id", SELECT probe, value WHERE id=<current id> 3. JOIN resulting table to table from previous iteration of the FOR loop Unfortunately, I am not sure if this is a good way to do this. And I am not familiar with stored procedure syntax. Can anyone help with this? Thanks, RC -- View this message in context: http://postgresql.1045698.n5.nabble.com/Use-for-loop-in-stored-procedure-to-join-query-results-tp3286416p3286416.html Sent from the PostgreSQL - novice mailing list archive at Nabble.com.
rchowdhury <rchowdhury@alumni.upenn.edu> wrote: > > Hello, > > I have a table similar to the following: > > id probe value > 1 asdf 10 > 1 qwer 20 > 1 zxcv 30 > 2 asdf 40 > 2 qwer 50 > 2 zxcv 60 > > I would like to create a stored procedure or function that will make a view > with the data as follows: > > 1 2 > asdf 10 40 > qwer 20 50 > zxcv 30 60 > > Does anyone know how to do this? I am attempting to make a stored procedure test=*# select * from foo; id | probe | value ----+-------+------- 1 | asdf | 10 1 | qwer | 20 1 | zxcv | 30 2 | asdf | 40 2 | qwer | 50 2 | zxcv | 60 (6 Zeilen) Zeit: 0,275 ms test=*# select probe, sum(case when id=1 then value else null end) as "1", sum(case when id=2 then value else null end) as "2" from foo group by 1 order by 1; probe | 1 | 2 -------+----+---- asdf | 10 | 40 qwer | 20 | 50 zxcv | 30 | 60 (3 Zeilen) Andreas -- Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. (Linus Torvalds) "If I was god, I would recompile penguin with --enable-fly." (unknown) Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°
That worked perfectly. Thanks Andreas! -- View this message in context: http://postgresql.1045698.n5.nabble.com/Use-for-loop-in-stored-procedure-to-join-query-results-tp3286416p3286600.html Sent from the PostgreSQL - novice mailing list archive at Nabble.com.