|
5 | 5 | /* Goal: assign results based on tasks to a group */ |
6 | 6 | /* Problem: there are tasks belonging to 2 different groups */ |
7 | 7 |
|
| 8 | +/* Make sure to find out all duplicated tasks beforehand: |
| 9 | +/* Create duplicated flag for tasks*/ |
| 10 | +/* ALTER TABLE*/ |
| 11 | +/* tasks*/ |
| 12 | +/* ADD COLUMN*/ |
| 13 | +/* duplicated boolean DEFAULT false;*/ |
| 14 | + |
| 15 | +/* Set duplicated tasks */ |
| 16 | +/* (tasks with same ID and geometry occurring in two different groups) */ |
| 17 | +/* UPDATE*/ |
| 18 | +/* tasks t1*/ |
| 19 | +/* SET*/ |
| 20 | +/* duplicated = true*/ |
| 21 | +/* FROM*/ |
| 22 | +/* tasks t2*/ |
| 23 | +/* WHERE*/ |
| 24 | +/* t1.task_id = t2.task_id*/ |
| 25 | +/* AND t1.project_id = t2.project_id*/ |
| 26 | +/* AND t1.group_id != t2.group_id;*/ |
| 27 | + |
| 28 | + |
8 | 29 | CREATE TEMP TABLE v1_results( |
9 | 30 | project_id varchar, |
10 | 31 | group_id varchar DEFAULT NULL, |
@@ -33,25 +54,6 @@ WHERE result IS NULL; |
33 | 54 | UPDATE v1_results |
34 | 55 | SET timestamp = TO_TIMESTAMP(timeint/1000); |
35 | 56 |
|
36 | | -/* Create duplicated flag for tasks*/ |
37 | | -ALTER TABLE |
38 | | - tasks |
39 | | -ADD COLUMN |
40 | | - duplicated boolean DEFAULT false; |
41 | | - |
42 | | -/* Set duplicated tasks */ |
43 | | -/* (tasks with same ID and geometry occurring in two different groups) */ |
44 | | -UPDATE |
45 | | - tasks t1 |
46 | | -SET |
47 | | - duplicated = true |
48 | | -FROM |
49 | | - tasks t2 |
50 | | -WHERE |
51 | | - t1.task_id = t2.task_id |
52 | | - AND t1.project_id = t2.project_id |
53 | | - AND t1.group_id != t2.group_id; |
54 | | - |
55 | 57 | /* Set group_id of v1_results for non-duplicated tasks */ |
56 | 58 | UPDATE |
57 | 59 | v1_results r |
@@ -139,9 +141,3 @@ SELECT |
139 | 141 | FROM |
140 | 142 | user_results |
141 | 143 | ON CONFLICT (project_id, group_id, task_id, user_id) DO NOTHING; |
142 | | - |
143 | | - |
144 | | -ALTER TABLE |
145 | | - tasks |
146 | | -DROP COLUMN |
147 | | - duplicated; |
0 commit comments