view: dt_top_playlist_by_country {
    derived_table: {
      sql:
      WITH content_filter AS (
          SELECT playlistid, countryid, SUM(units) AS streams
          FROM facts.prod.fact_analytics
          WHERE {% condition countryid %} countryid {% endcondition %}
              AND {% condition labelid %} labelid {% endcondition %}
              AND transactiontypeid IN (1,10)
          GROUP BY 1,2
      ),
      top_tracks AS (
          SELECT RANK() OVER (ORDER BY SUM(streams) DESC) AS rank, playlistid
          FROM content_filter
          GROUP BY 2
      )
      SELECT
          t.rank,
          --t.isrcid,
          dp.playlistid,
          dp.playlistname,
          --dr.sale_start_date,
          --dd.dayid,
          --dd.displaydate,
          --DATEDIFF('day',dr.sale_start_date,dd.displaydate) AS days_since_release,
          dc.countryid,
          dc.countryname,
          cf.streams
      FROM top_tracks t
          INNER JOIN content_filter cf ON t.playlistid = cf.playlistid
          INNER JOIN facts.prod.dim_playlist dp ON cf.playlistid = dp.playlistid
          INNER JOIN facts.prod.dim_country dc ON cf.countryid = dc.countryid
          --INNER JOIN facts.prod.dim_isrc di ON t.isrcid = di.isrcid
          --INNER JOIN facts.prod.dim_day dd ON cf.dayid = dd.dayid
      --WHERE DATEDIFF('day',dr.sale_start_date,dd.displaydate) >= 0
      ORDER BY rank ASC
            ;;
    }

    filter: countryid { type: number }
    filter: labelid {label: "Label ID" type: number }

    dimension: rank {
      type: number
      sql: ${TABLE}.rank ;;
    }

    dimension: country_id {
      type: number
      sql: ${TABLE}.countryid ;;
    }

    dimension: countryname {
      type: string
     sql: ${TABLE}.countryname ;;
   }

    dimension: days_since_release {
      type: number
      sql: ${TABLE}.days_since_release ;;
    }

  dimension: label_id {
    type: number
    hidden: no
    sql: ${TABLE}.labelid ;;
  }

  dimension: playlist {
    type: number
    hidden: no
    sql: ${TABLE}.playlistid ;;
  }

  dimension: playlist_name {
    type: string
    hidden: no
    sql: ${TABLE}.playlistname ;;
  }

  dimension: artistid {
    type: number
    hidden: no
    sql: ${TABLE}.artistid  ;;
  }

  dimension: month {
    type: number
    sql: ${TABLE}.month ;;
  }

  dimension: year {
    type: number
    sql: ${TABLE}.year ;;
  }

    measure: streams {
      type: sum
      sql: ${TABLE}.streams ;;
    }
  }
