view: dt_track_artist_by_type { sql_table_name: INTELLIGENCE.DBT_PROD.DT_TRACK_ARTIST_BY_TYPE ;; # derived_table: { # sql: # SELECT # tuid, # LISTAGG(DISTINCT primary_artist, ', ') WITHIN GROUP (ORDER BY primary_artist) AS primary_artists, # LISTAGG(DISTINCT composer, ', ') WITHIN GROUP (ORDER BY composer) AS composers, # LISTAGG(DISTINCT producer, ', ') WITHIN GROUP (ORDER BY producer) AS producers, # LISTAGG(DISTINCT remixer, ', ') WITHIN GROUP (ORDER BY remixer) AS remixers, # LISTAGG(DISTINCT featuring, ', ') WITHIN GROUP (ORDER BY featuring) AS featuring # FROM ( # SELECT # track_id AS tuid, # CASE type WHEN 'performer' THEN name ELSE NULL END AS primary_artist, # CASE type WHEN 'composer' THEN name ELSE NULL END AS composer, # CASE type WHEN 'producer' THEN name ELSE NULL END AS producer, # CASE type WHEN 'remixer' THEN name ELSE NULL END AS remixer, # CASE type WHEN 'featuring' THEN name ELSE NULL END AS featuring # FROM orchard_app_reporting_v2.art_relations_prod_art_relations.track_artist # WHERE type IN ('performer','composer','producer','remixer','featuring') # ) # GROUP BY 1 ;; # } dimension: tuid { type: number sql: ${TABLE}.tuid ;; primary_key: yes hidden: yes } dimension: primary_artists { type: string sql: ${TABLE}.primary_artists ;; view_label: "Track" label: "Primary Artist(s)" group_label: "Track Artists" } dimension: composers { type: string sql: ${TABLE}.composers ;; view_label: "Track" label: "Composer(s)" group_label: "Track Artists" } dimension: producers { type: string sql: ${TABLE}.producers ;; view_label: "Track" label: "Producer(s)" group_label: "Track Artists" } dimension: remixers { type: string sql: ${TABLE}.remixers ;; view_label: "Track" label: "Remixer(s)" group_label: "Track Artists" } dimension: featuring { type: string sql: ${TABLE}.featuring ;; view_label: "Track" label: "Featuring(s)" group_label: "Track Artists" } }