-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
59de224
commit 2766580
Showing
2 changed files
with
50 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
-- select one record per (learner, problem, course, org) tuple | ||
-- contains either the first successful attempt | ||
-- or the most recent unsuccessful attempt | ||
-- find the timestamp of the earliest successful response | ||
-- this will be used to pick the xAPI event corresponding to that submission | ||
with | ||
full_responses as ( | ||
select | ||
events.emission_time as emission_time, | ||
events.org as org, | ||
events.course_key as course_key, | ||
events.problem_id as problem_id, | ||
events.object_id as object_id, | ||
events.actor_id as actor_id, | ||
events.responses as responses, | ||
events.success as success, | ||
events.attempts as attempts, | ||
events.interaction_type as interaction_type | ||
from {{ ref("problem_events") }} events | ||
join | ||
{{ ref("dim_learner_response_attempt") }} using ( | ||
org, course_key, problem_id, actor_id, emission_time | ||
) | ||
) | ||
|
||
select | ||
full_responses.emission_time as emission_time, | ||
full_responses.org as org, | ||
full_responses.course_key as course_key, | ||
blocks.course_name as course_name, | ||
blocks.course_run as course_run, | ||
full_responses.problem_id as problem_id, | ||
blocks.block_name as problem_name, | ||
blocks.display_name_with_location as problem_name_with_location, | ||
blocks.course_order as course_order, | ||
blocks.problem_link as problem_link, | ||
full_responses.actor_id as actor_id, | ||
full_responses.responses as responses, | ||
full_responses.success as success, | ||
full_responses.attempts as attempts, | ||
full_responses.interaction_type as interaction_type, | ||
blocks.graded | ||
from full_responses | ||
join | ||
{{ ref("dim_course_blocks") }} blocks | ||
on ( | ||
full_responses.course_key = blocks.course_key | ||
and full_responses.problem_id = blocks.block_id | ||
) |