view: 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 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 FROM orchard_app_reporting_v2.art_relations_prod_art_relations.track_artist WHERE type IN ('performer','composer','producer','remixer') ) 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" } }