/ db / test / sql /
/db/test/sql/grouplots_day1
1 -- Copyright (C) 2013 The Meme Factory, Inc., http://www.meme.com/
2 --
3 -- This file is part of Gombe-MI.
4 --
5 -- Gombe-MI is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
9 --
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
14 --
15 -- You should have received a copy of the GNU General Public License
16 -- along with Gombe-MI. If not, see <http://www.gnu.org/licenses/>.
17 --
18 -- Add male4 (MA4), and female1 (FE1) to the groups of follow 1,
19 -- and male2 (MA5) and female2 (FE2) to the groups of follow 2.
20 -- (The existing groups all have intervals from 9am to 5pm on follows 1-4).
21 --
22 -- All data appearing in this work are fictitious. Any resemblance to
23 -- actual data, living or archived, is purely coincidental.
24 --
25 -- Karl O. Pinc <kop@meme.com>
26 --
27
28 do $$
29 declare
30 this_time time;
31 a1 varchar array;
32 a2 varchar array;
33
34 begin
35
36 a1[1] := 'MA4';
37 a2[1] := 'FE1';
38 a1[2] := 'MA5';
39 a2[2] := 'FE2';
40
41 -- The group composition is all taken at 5 minute intervals so use
42 -- that to find the groups.
43
44 this_time := '9:00';
45 while this_time <= '17:00' loop
46
47 for fid in 1 .. 2 loop
48 -- Give each of the groups 2 new members.
49 insert into groupmembers (gid, chimpid, uncertain)
50 select intervals.gid, a1[fid], 'f'
51 from intervals
52 where intervals.followid = fid
53 and intervals.time = this_time;
54
55 insert into groupmembers (gid, chimpid, uncertain)
56 select intervals.gid, a2[fid], 'f'
57 from intervals
58 where intervals.followid = fid
59 and intervals.time = this_time;
60 end loop;
61
62 this_time := this_time + '5 minute'::interval;
63 end loop;
64 end;
65 $$;
66