Skip to content

Commit 06d34b9

Browse files
authored
Bugfix/obj assess k assess (#130)
* distinguish subject used for both keys * pull through new obj assess subject for stu subj * Update stg_ef3__objective_assessments.sql * rename for consistency in warehouse models * Update CHANGELOG.md * alphabetize keys
1 parent a872c05 commit 06d34b9

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
- Add (optional) support for incremental materialization of most expensive stg models
55
## Under the hood
66
## Fixes
7+
- Fix unique key of `k_assessment` in `stg_ef3__objective_assessments`
78
- Fix unique key `k_student_assessment` in `stg_ef3__student_assessments` to include `student_unique_id` (relevant only where `student_assessment_identifier` is not on its own unique)
89

10+
911
# edu_edfi_source v0.4.6
1012
## Fixes
1113
- Fix deduplication logic in all stg models to handle deleted records correctly before removal. This brings EDU more in sync with ODS true state

models/staging/edfi_3/stage/stg_ef3__objective_assessments.sql

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ distinct_obj_subject as (
2020
join_subject as (
2121
select
2222
base_obj_assessments.*,
23+
distinct_obj_subject.academic_subject as academic_subject,
2324
-- prefer subject directly from obj assessment, else use studentAssess value
24-
coalesce(base_obj_assessments.academic_subject_descriptor, distinct_obj_subject.academic_subject) as academic_subject
25+
coalesce(base_obj_assessments.academic_subject_descriptor, distinct_obj_subject.academic_subject) as obj_assess_academic_subject
2526
from base_obj_assessments
2627
-- this join will drop objective assessments with no student results
2728
join distinct_obj_subject
@@ -39,6 +40,7 @@ keyed as (
3940
'lower(academic_subject)',
4041
'lower(assessment_identifier)',
4142
'lower(namespace)',
43+
'lower(obj_assess_academic_subject)',
4244
'lower(objective_assessment_identification_code)']
4345
) }} as k_objective_assessment,
4446
{{ gen_skey('k_assessment', extras = ['academic_subject']) }},
@@ -55,6 +57,12 @@ deduped as (
5557
order_by='last_modified_timestamp desc, pull_timestamp desc'
5658
)
5759
}}
60+
),
61+
{# Rename obj_assess_academic_subject --> academic_subject for human-readability and to avoid breaking change to warehouse. academic_subject above represents 'OVERALL' assessment subject, so that the gen_skey() call works. #}
62+
renamed as (
63+
select
64+
deduped.* RENAME (academic_subject as assess_academic_subject, obj_assess_academic_subject as academic_subject)
65+
from deduped
5866
)
59-
select * from deduped
67+
select * from renamed
6068
where not is_deleted

0 commit comments

Comments
 (0)