SQL
Gaming fantasy
Business Operations
Business Operations model for gaming fantasy.
source-preserved
Blocks
business_operations.sql · 24 lines
inferred
-- models/business_operations.sql
{{ config(materialized='view') }}
Select RM.id,
Guru.AddedOn,
RM.RoundStartTime,
RM.CreatedAt,
RM.StartDate,
RM.TourId,
RM.EndDate
from RoundMaster
as RM Left Join
GuruData As Guru
on RM.id=Guru.RoundId
where Guru.AddedOn IS NOT NULL
# models/schema.yml
version: 2
models:
- name: business_operations
columns:
- name: RoundId
- name: TourId
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.
business_operations.sql · 12 lines
source-preserved
validation: parses
Select RM.id,
Guru.AddedOn,
RM.RoundStartTime,
RM.CreatedAt,
RM.StartDate,
RM.TourId,
RM.EndDate
from RoundMaster
as RM Left Join
GuruData As Guru
on RM.id=Guru.RoundId
where Guru.AddedOn IS NOT NULL
business_operations.view.lkml · 80 lines
inferred
view: business_operations {
derived_table: {
sql: Select RM.id,
Guru.AddedOn,
RM.RoundStartTime,
RM.CreatedAt,
RM.StartDate,
RM.TourId,
RM.EndDate
from RoundMaster
as RM Left Join
GuruData As Guru
on RM.id=Guru.RoundId
where Guru.AddedOn IS NOT NULL ;;
}
dimension: RoundId {
type: int
sql: ${TABLE}.id ;;
}
dimension: TourId {
type: int
sql: ${TABLE}.TourId ;;
}
dimension_group: roundstarttime {
label: "Round Lock Time"
type: time
timeframes: [minute, hour, time, date]
datatype: datetime
sql: ${TABLE}.RoundStartTime ;;
}
dimension_group: roundcreationdate {
label: "Round Creation Time"
type: time
timeframes: [minute, hour, time, date]
datatype: datetime
sql: ${TABLE}.CreatedAt ;;
}
dimension_group: startdate {
label: "Match Start Time"
type: time
timeframes: [minute, hour, time, date]
datatype: datetime
sql: ${TABLE}.StartDate ;;
}
dimension_group: enddate {
label: "Match End Time"
type: time
timeframes: [minute, hour, time, date]
datatype: datetime
sql: ${TABLE}.EndDate ;;
}
dimension_group: guru_date {
label: "Guru Added Time"
type: time
timeframes: [minute, hour, time, date]
datatype: datetime
sql: ${TABLE}.AddedOn ;;
}
dimension_group: guru_lock_difference {
label: "Time difference(Guru Update to Round Lock)"
type: time
timeframes: [minute, hour, time, date]
datatype: datetime
sql: TIMEDIFF(${roundstarttime_time}, ${guru_date_time}) ;;
}
measure: avg_time_guru {
label: "Average Time in hours (Guru Update to Round Lock)"
type: avg
sql: ${guru_lock_difference_hour} ;;
}
}
business_operations.view.lookml · 79 lines
source-preserved
- view: business_operations
derived_table:
sql: Select RM.id,
Guru.AddedOn,
RM.RoundStartTime,
RM.CreatedAt,
RM.StartDate,
RM.TourId,
RM.EndDate
from RoundMaster
as RM Left Join
GuruData As Guru
on RM.id=Guru.RoundId
where Guru.AddedOn IS NOT NULL
fields:
- dimension: RoundId
type: int
sql: ${TABLE}.id
- dimension: TourId
type: int
sql: ${TABLE}.TourId
- dimension_group: roundstarttime
type: time
timeframes:
- minute
- hour
- time
- date
datatype: datetime
sql: ${TABLE}.RoundStartTime
- dimension_group: roundcreationdate
type: time
timeframes:
- minute
- hour
- time
- date
datatype: datetime
sql: ${TABLE}.CreatedAt
- dimension_group: startdate
type: time
timeframes:
- minute
- hour
- time
- date
datatype: datetime
sql: ${TABLE}.StartDate
- dimension_group: enddate
type: time
timeframes:
- minute
- hour
- time
- date
datatype: datetime
sql: ${TABLE}.EndDate
- dimension_group: guru_date
type: time
timeframes:
- minute
- hour
- time
- date
datatype: datetime
sql: ${TABLE}.AddedOn
- dimension_group: guru_lock_difference
type: time
timeframes:
- minute
- hour
- time
- date
datatype: datetime
sql: TIMEDIFF(${roundstarttime_time}, ${guru_date_time})
- measure: avg_time_guru
type: avg
label: Average Time in hours (Guru Update to Round Lock)
sql: ${guru_lock_difference_hour}
Contents
- business_operations.sql
- business_operations.sql
- business_operations.view.lkml
- business_operations.view.lookml