SQL
Subscription fitness
Reservation Facts
Reservation Facts model for subscription fitness.
source-preserved
Blocks
reservation_facts.sql · 34 lines
inferred
-- models/reservation_facts.sql
{{ config(materialized='view') }}
select
pr.venue_id
, pr.schedule_id
, pr.class_id
, pr.start_date
, pr.start_time
, count(pr.id) AS classes_attended
, count(1) as count
from user_reservations pr
where pr.cancellation_type is null
and (pr.status <> 'failed' or pr.status is null)
and pr.type = 'company'
group by
1,
2,
3,
4,
<% parameter placeholder_permission_id %>
# models/schema.yml
version: 2
models:
- name: reservation_facts
columns:
- name: venue_id
- name: class_id
- name: schedule_id
- name: start_date
- name: classes_attended
- name: count
Assumptions
- materialized='view' is the default; no persist hint found.
- schema.yml columns come from view dimensions; a primary_key dimension gets unique + not_null tests.
reservation_facts.sql · 18 lines
source-preserved
validation: not checked
select
pr.venue_id
, pr.schedule_id
, pr.class_id
, pr.start_date
, pr.start_time
, count(pr.id) AS classes_attended
, count(1) as count
from user_reservations pr
where pr.cancellation_type is null
and (pr.status <> 'failed' or pr.status is null)
and pr.type = 'company'
group by
1,
2,
3,
4,
<% parameter placeholder_permission_id %>
reservation_facts.view.lkml · 69 lines
inferred
view: reservation_facts {
derived_table: {
sql: select
pr.venue_id
, pr.schedule_id
, pr.class_id
, pr.start_date
, pr.start_time
, count(pr.id) AS classes_attended
, count(1) as count
from user_reservations pr
where pr.cancellation_type is null
and (pr.status <> 'failed' or pr.status is null)
and pr.type = 'company'
group by
1,
2,
3,
4,
<% parameter placeholder_permission_id %> ;;
}
dimension: venue_id {
type: number
hidden: yes
sql: ${TABLE}.venue_id ;;
}
dimension: class_id {
type: number
hidden: yes
sql: ${TABLE}.class_id ;;
}
dimension: schedule_id {
type: number
hidden: yes
sql: ${TABLE}.schedule_id ;;
}
dimension: start_date {
type: time
hidden: yes
sql: ${TABLE}.start_date ;;
}
dimension: classes_attended {
type: number
hidden: yes
sql: ${TABLE}.classes_attended ;;
}
dimension: count {
type: number
hidden: yes
sql: ${TABLE}.count ;;
}
dimension_group: start_time {
type: time
timeframes: [time_of_day, hour_of_day]
sql: ${TABLE}.start_time ;;
}
measure: latest_classtime {
hidden: yes
sql: max(${start_time_time_of_day}) ;;
}
}
reservation_facts.view.lookml · 53 lines
source-preserved
- view: reservation_facts
derived_table:
sql: select
pr.venue_id
, pr.schedule_id
, pr.class_id
, pr.start_date
, pr.start_time
, count(pr.id) AS classes_attended
, count(1) as count
from user_reservations pr
where pr.cancellation_type is null
and (pr.status <> 'failed' or pr.status is null)
and pr.type = 'company'
group by
1,
2,
3,
4,
<% parameter placeholder_permission_id %>
fields:
- dimension: venue_id
type: number
hidden: true
sql: ${TABLE}.venue_id
- dimension: class_id
type: number
hidden: true
sql: ${TABLE}.class_id
- dimension: schedule_id
type: number
hidden: true
sql: ${TABLE}.schedule_id
- dimension: start_date
type: time
hidden: true
sql: ${TABLE}.start_date
- dimension: classes_attended
type: number
hidden: true
sql: ${TABLE}.classes_attended
- dimension: count
type: number
hidden: true
sql: ${TABLE}.count
- dimension_group: start_time
type: time
timeframes:
- time_of_day
- hour_of_day
sql: ${TABLE}.start_time
- measure: latest_classtime
sql: max(${start_time_time_of_day})
Contents
- reservation_facts.sql
- reservation_facts.sql
- reservation_facts.view.lkml
- reservation_facts.view.lookml