LKML Streaming cinema

Watched

Watched model for streaming cinema.

inferred

Blocks

watched.view.lkml · 155 lines
inferred
view: watched {
  sql_table_name: public.watched ;;

  dimension: 2_letter_country {
    sql: ${TABLE}.country ;;
  }

  dimension: channel_id {
    type: int
    sql: ${TABLE}.channel_id ;;
  }

  dimension: days_since_joined {
    type: number
    sql: datediff('day',${auth_user.date_joined_raw},${view_raw}) ;;
  }

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

  dimension: is_embed {
    type: yesno
    sql: ${TABLE}.is_embed ;;
  }

  dimension: is_offline {
    type: yesno
    sql: ${TABLE}.is_offline ;;
  }

  dimension: persistent_user_cookie {
    hidden: yes
    sql: ${TABLE}.persistent_user_cookie ;;
  }

  dimension: platform {
    sql: ${TABLE}.platform ;;
  }

  dimension: series_id {
    type: int
    sql: ${TABLE}.series_id ;;
  }

  dimension: session_id {
    hidden: yes
    sql: ${TABLE}.session_id ;;
  }

  dimension: session_hours {
    type: number
    hidden: yes
    sql: ${session_seconds} / 3600.0 ;;
  }

  dimension: session_minutes {
    type: number
    hidden: yes
    sql: ${session_seconds} / 60.0 ;;
  }

  dimension: session_seconds {
    type: number
    hidden: yes
    sql: ${TABLE}.seconds ;;
  }

  dimension: site {
    sql: ${TABLE}.site ;;
  }

  dimension: user_id {
    type: int
    hidden: yes
    sql: ${TABLE}.user_id ;;
  }

  dimension: user_type {
    sql: ${TABLE}.user_type ;;
  }

  dimension: platform_category {
  }

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

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

  dimension_group: view {
    type: time
    timeframes: [time, date, week, month, day_of_week, hour_of_day, raw]
    sql: ${TABLE}.view_date ;;
  }

  measure: average_minutes_watched_per_active_user {
    type: number
    sql: 1.0 * ${total_minutes_watched_premium} / nullif(${main_profile.count_premium_users},0) ;;
  }

  measure: average_session_length_minutes {
    type: average
    sql: ${session_minutes} ;;
  }

  measure: count {
    type: count
    drill_fields: [user_id, user_type, view_time, session_id, series_id]
  }

  measure: total_hours_watched {
    type: sum
    sql: ${session_hours} ;;
  }

  measure: total_minutes_watched {
    type: sum
    sql: ${session_minutes} ;;
  }

  measure: total_minutes_watched_last_12_months {
    type: sum
    filters: [view_date: "12 months ago for 12 months"]
    sql: ${session_minutes} ;;
  }

  measure: total_hours_watched_last_12_months {
    type: sum
    filters: [view_date: "12 months ago for 12 months"]
    sql: ${session_hours} ;;
  }

  measure: total_minutes_watched_premium {
    type: sum
    filters: [main_profile.is_premium: "Yes"]
    sql: ${session_minutes} ;;
  }

  measure: unique_watchers {
    type: count_distinct
    sql: ${user_id} ;;
  }

  measure: average_minutes_watched {
    type: number
    sql: ${total_minutes_watched}/${unique_watchers} ;;
  }
}
watched.view.lookml · 110 lines
source-preserved
- view: watched
  sql_table_name: public.watched
  fields:
  - dimension: 2_letter_country
    sql: ${TABLE}.country
  - dimension: channel_id
    type: int
    sql: ${TABLE}.channel_id
  - dimension: days_since_joined
    type: number
    sql: datediff('day',${auth_user.date_joined_raw},${view_raw})
  - dimension: episode_number
    type: number
    sql: ${TABLE}.episode_number
  - dimension: is_embed
    type: yesno
    sql: ${TABLE}.is_embed
  - dimension: is_offline
    type: yesno
    sql: ${TABLE}.is_offline
  - dimension: persistent_user_cookie
    hidden: true
    sql: ${TABLE}.persistent_user_cookie
  - dimension: platform
    sql: ${TABLE}.platform
  - dimension: series_id
    type: int
    sql: ${TABLE}.series_id
  - dimension: session_id
    hidden: true
    sql: ${TABLE}.session_id
  - dimension: session_hours
    type: number
    hidden: true
    sql: ${session_seconds} / 3600.0
  - dimension: session_minutes
    type: number
    hidden: true
    sql: ${session_seconds} / 60.0
  - dimension: session_seconds
    type: number
    hidden: true
    sql: ${TABLE}.seconds
  - dimension: site
    sql: ${TABLE}.site
  - dimension: user_id
    type: int
    hidden: true
    sql: ${TABLE}.user_id
  - dimension: user_type
    sql: ${TABLE}.user_type
  - dimension: platform_category
  - dimension: country_code
    type: string
    sql: ${TABLE}.country_code
  - dimension: country_name
    type: string
    sql: ${TABLE}.country_name
  - dimension_group: view
    type: time
    timeframes:
    - time
    - date
    - week
    - month
    - day_of_week
    - hour_of_day
    - raw
    sql: ${TABLE}.view_date
  - measure: average_minutes_watched_per_active_user
    type: number
    sql: 1.0 * ${total_minutes_watched_premium} / nullif(${main_profile.count_premium_users},0)
  - measure: average_session_length_minutes
    type: average
    sql: ${session_minutes}
  - measure: count
    type: count
    drill_fields:
    - user_id
    - user_type
    - view_time
    - session_id
    - series_id
  - measure: total_hours_watched
    type: sum
    sql: ${session_hours}
  - measure: total_minutes_watched
    type: sum
    sql: ${session_minutes}
  - measure: total_minutes_watched_last_12_months
    type: sum
    filters:
    - view_date: 12 months ago for 12 months
    sql: ${session_minutes}
  - measure: total_hours_watched_last_12_months
    type: sum
    filters:
    - view_date: 12 months ago for 12 months
    sql: ${session_hours}
  - measure: total_minutes_watched_premium
    type: sum
    filters:
    - main_profile.is_premium: Yes
    sql: ${session_minutes}
  - measure: unique_watchers
    type: count_distinct
    sql: ${user_id}
  - measure: average_minutes_watched
    type: number
    sql: ${total_minutes_watched}/${unique_watchers}

Contents

  • watched.view.lkml
  • watched.view.lookml