models/marts/dag/fct_source_fanout.sql (25 lines of code) (raw):

-- this model finds cases where a source is used in multiple direct downstream models with direct_source_relationships as ( select * from {{ ref('int_all_dag_relationships') }} where distance = 1 and parent_resource_type = 'source' and child_resource_type = 'model' and not parent_is_excluded and not child_is_excluded -- we order the CTE so that listagg returns values correctly sorted for some warehouses order by child ), source_fanout as ( select parent, {{ dbt.listagg( measure='child', delimiter_text="', '", order_by_clause='order by child' if target.type in ['snowflake','redshift','duckdb','trino']) }} as model_children from direct_source_relationships group by 1 having count(*) > 1 ) select * from source_fanout {{ filter_exceptions() }}