models/marts/dag/fct_direct_join_to_source.sql (38 lines of code) (raw):

-- this model finds cases where a model has a reference to both a model and a source with direct_model_relationships as ( select * from {{ ref('int_all_dag_relationships') }} where child_resource_type = 'model' and distance = 1 and not parent_is_excluded and not child_is_excluded ), model_and_source_joined as ( select child, case when ( sum(case when parent_resource_type = 'model' then 1 else 0 end) > 0 and sum(case when parent_resource_type = 'source' then 1 else 0 end) > 0 ) then true else false end as keep_row from direct_model_relationships group by 1 ), final as ( select direct_model_relationships.parent, direct_model_relationships.parent_resource_type, direct_model_relationships.child, direct_model_relationships.child_resource_type, direct_model_relationships.distance from direct_model_relationships inner join model_and_source_joined on direct_model_relationships.child = model_and_source_joined.child where model_and_source_joined.keep_row order by direct_model_relationships.child ) select * from final {{ filter_exceptions() }}