Skip to content

Commit b73071a

Browse files
authored
Merge pull request #11 from Sage-Bionetworks/SNOW-32-fix-upsert-task
[SNOW-32] Fix certified quiz question tasks
2 parents 57032a3 + 6b7b0a1 commit b73071a

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
use role accountadmin;
2+
use schema {{database_name}}.synapse_raw; --noqa: JJ01,PRS,TMP
3+
alter task refresh_synapse_warehouse_s3_stage_task suspend;
4+
-- Alter certified quiz task
5+
alter task append_to_certifiedquizquestionsnapshots_task suspend;
6+
alter task upsert_to_certifiedquizquestion_latest_task suspend;
7+
8+
alter task upsert_to_certifiedquizquestion_latest_task MODIFY AS
9+
MERGE INTO {{database_name}}.SYNAPSE.CERTIFIEDQUIZQUESTION_LATEST AS TARGET_TABLE --noqa: TMP
10+
USING (
11+
WITH CQQ_RANKED AS (
12+
SELECT
13+
*,
14+
ROW_NUMBER() OVER (
15+
PARTITION BY RESPONSE_ID, QUESTION_INDEX
16+
ORDER BY IS_CORRECT DESC, INSTANCE DESC
17+
) AS ROW_NUM
18+
FROM CERTIFIEDQUIZQUESTION_STREAM
19+
)
20+
21+
SELECT * EXCLUDE ROW_NUM
22+
FROM CQQ_RANKED
23+
WHERE ROW_NUM = 1
24+
ORDER BY RESPONSE_ID DESC, QUESTION_INDEX ASC
25+
) AS SOURCE_TABLE ON TARGET_TABLE.RESPONSE_ID = SOURCE_TABLE.RESPONSE_ID AND TARGET_TABLE.QUESTION_INDEX = SOURCE_TABLE.QUESTION_INDEX
26+
WHEN MATCHED THEN
27+
UPDATE SET
28+
TARGET_TABLE.CHANGE_TYPE = SOURCE_TABLE.CHANGE_TYPE,
29+
TARGET_TABLE.CHANGE_TIMESTAMP = SOURCE_TABLE.CHANGE_TIMESTAMP,
30+
TARGET_TABLE.CHANGE_USER_ID = SOURCE_TABLE.CHANGE_USER_ID,
31+
TARGET_TABLE.SNAPSHOT_TIMESTAMP = SOURCE_TABLE.SNAPSHOT_TIMESTAMP,
32+
TARGET_TABLE.RESPONSE_ID = SOURCE_TABLE.RESPONSE_ID,
33+
TARGET_TABLE.QUESTION_INDEX = SOURCE_TABLE.QUESTION_INDEX,
34+
TARGET_TABLE.IS_CORRECT = SOURCE_TABLE.IS_CORRECT,
35+
TARGET_TABLE.STACK = SOURCE_TABLE.STACK,
36+
TARGET_TABLE.INSTANCE = SOURCE_TABLE.INSTANCE,
37+
TARGET_TABLE.SNAPSHOT_DATE = SOURCE_TABLE.SNAPSHOT_DATE
38+
WHEN NOT MATCHED THEN
39+
INSERT (CHANGE_TYPE, CHANGE_TIMESTAMP, CHANGE_USER_ID, SNAPSHOT_TIMESTAMP, RESPONSE_ID, QUESTION_INDEX, IS_CORRECT, STACK, INSTANCE, SNAPSHOT_DATE)
40+
VALUES (SOURCE_TABLE.CHANGE_TYPE, SOURCE_TABLE.CHANGE_TIMESTAMP, SOURCE_TABLE.CHANGE_USER_ID, SOURCE_TABLE.SNAPSHOT_TIMESTAMP, SOURCE_TABLE.RESPONSE_ID, SOURCE_TABLE.QUESTION_INDEX, SOURCE_TABLE.IS_CORRECT, SOURCE_TABLE.STACK, SOURCE_TABLE.INSTANCE, SOURCE_TABLE.SNAPSHOT_DATE);
41+
42+
alter task upsert_to_certifiedquizquestion_latest_task resume;
43+
alter task append_to_certifiedquizquestionsnapshots_task resume;
44+
alter task refresh_synapse_warehouse_s3_stage_task resume;

0 commit comments

Comments
 (0)