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