SQL
Subscription fitness
Classes
Classes model for subscription fitness.
source-preserved
Blocks
classes.sql · 38 lines
inferred
-- models/classes.sql
{{ config(materialized='view') }}
select cv.class_id,
cv.venue_id,
cv.class_name,
cv.class_alias,
cv.class_source,
cv.entity_type,
cv.published,
cv.base_price,
cv.sold_out_price,
pv.created_on,
pv.disabled,
pv.spots,
pv.feature_disabled,
pv.reserved_spots
from activity_classes cv
left join external_classes pv
on cv.class_id = pv.class_id
# models/schema.yml
version: 2
models:
- name: classes
columns:
- name: class_id
tests:
- unique
- not_null
- name: venue_id
- name: class_name
- name: published
- name: disabled
- name: spots
- name: feature_disabled
- name: reserved_spots
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.
classes.sql · 17 lines
source-preserved
validation: parses
select cv.class_id,
cv.venue_id,
cv.class_name,
cv.class_alias,
cv.class_source,
cv.entity_type,
cv.published,
cv.base_price,
cv.sold_out_price,
pv.created_on,
pv.disabled,
pv.spots,
pv.feature_disabled,
pv.reserved_spots
from activity_classes cv
left join external_classes pv
on cv.class_id = pv.class_id
classes.view.lkml · 64 lines
inferred
view: classes {
derived_table: {
sql: select cv.class_id,
cv.venue_id,
cv.class_name,
cv.class_alias,
cv.class_source,
cv.entity_type,
cv.published,
cv.base_price,
cv.sold_out_price,
pv.created_on,
pv.disabled,
pv.spots,
pv.feature_disabled,
pv.reserved_spots
from activity_classes cv
left join external_classes pv
on cv.class_id = pv.class_id ;;
}
dimension: class_id {
type: int
primary_key: yes
sql: ${TABLE}.class_id ;;
}
dimension: venue_id {
type: int
sql: ${TABLE}.venue_id ;;
}
dimension: class_name {
sql: ${TABLE}.class_name ;;
}
dimension: published {
type: yesno
sql: ${TABLE}.published ;;
}
dimension: disabled {
sql: ${TABLE}.disabled ;;
}
dimension: spots {
type: int
sql: ${TABLE}.spots ;;
}
dimension: feature_disabled {
type: yesno
sql: ${TABLE}.feature_disabled ;;
}
dimension: reserved_spots {
type: int
sql: ${TABLE}.reserved_spots ;;
}
measure: count {
type: count
}
}
classes.view.lookml · 45 lines
source-preserved
- view: classes
derived_table:
sql: select cv.class_id,
cv.venue_id,
cv.class_name,
cv.class_alias,
cv.class_source,
cv.entity_type,
cv.published,
cv.base_price,
cv.sold_out_price,
pv.created_on,
pv.disabled,
pv.spots,
pv.feature_disabled,
pv.reserved_spots
from activity_classes cv
left join external_classes pv
on cv.class_id = pv.class_id
fields:
- dimension: class_id
type: int
primary_key: true
sql: ${TABLE}.class_id
- dimension: venue_id
type: int
sql: ${TABLE}.venue_id
- dimension: class_name
sql: ${TABLE}.class_name
- dimension: published
type: yesno
sql: ${TABLE}.published
- dimension: disabled
sql: ${TABLE}.disabled
- dimension: spots
type: int
sql: ${TABLE}.spots
- dimension: feature_disabled
type: yesno
sql: ${TABLE}.feature_disabled
- dimension: reserved_spots
type: int
sql: ${TABLE}.reserved_spots
- measure: count
type: count
Contents
- classes.sql
- classes.sql
- classes.view.lkml
- classes.view.lookml