dbt
Mobile ticketing
Event Game Stat Facts
Event Game Stat Facts model for mobile ticketing.
inferred
Blocks
event_game_stat_facts.sql · 43 lines
inferred
-- models/event_game_stat_facts.sql
{{ config(materialized='view') }}
SELECT
gs.game_id AS game_id
, COUNT(DISTINCT gs.fan_id) AS total_fans
, SUM(CASE WHEN gs.action = 0 THEN 1 ELSE 0 END) AS pre_registers
, SUM(CASE WHEN gs.action = 1 THEN 1 ELSE 0 END) AS request_tickets
, SUM(CASE WHEN gs.action = 2 THEN 1 ELSE 0 END) AS purchases
, SUM(CASE WHEN gs.action = 3 THEN 1 ELSE 0 END) AS bails
, SUM(CASE WHEN gs.action = 4 THEN 1 ELSE 0 END) AS category_requests
, SUM(CASE WHEN gs.action = 5 THEN 1 ELSE 0 END) AS pre_reg_notifications
, SUM(CASE WHEN gs.action = 6 THEN 1 ELSE 0 END) AS request_bumps
, SUM(CASE WHEN gs.action = 7 THEN 1 ELSE 0 END) AS barcode_submissions
, SUM(CASE WHEN gs.action = 101 THEN 1 ELSE 0 END) AS memories_requests
, SUM(CASE WHEN gs.action = 102 THEN 1 ELSE 0 END) AS memories_purchases
, SUM(CASE WHEN gs.action = 104 THEN 1 ELSE 0 END) AS memories_category_requests
FROM game_stat AS gs
GROUP BY game_id
# models/schema.yml
version: 2
models:
- name: event_game_stat_facts
columns:
- name: game_id
tests:
- unique
- not_null
- name: registrations
- name: total_fans
- name: pre_registers
- name: request_tickets
- name: purchases
- name: bails
- name: category_requests
- name: pre_reg_notifications
- name: request_bumps
- name: barcode_submissions
- name: memories_requests
- name: memories_purchases
- name: memories_category_requests
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.
event_game_stat_facts.sql · 16 lines
source-preserved
validation: parses
SELECT
gs.game_id AS game_id
, COUNT(DISTINCT gs.fan_id) AS total_fans
, SUM(CASE WHEN gs.action = 0 THEN 1 ELSE 0 END) AS pre_registers
, SUM(CASE WHEN gs.action = 1 THEN 1 ELSE 0 END) AS request_tickets
, SUM(CASE WHEN gs.action = 2 THEN 1 ELSE 0 END) AS purchases
, SUM(CASE WHEN gs.action = 3 THEN 1 ELSE 0 END) AS bails
, SUM(CASE WHEN gs.action = 4 THEN 1 ELSE 0 END) AS category_requests
, SUM(CASE WHEN gs.action = 5 THEN 1 ELSE 0 END) AS pre_reg_notifications
, SUM(CASE WHEN gs.action = 6 THEN 1 ELSE 0 END) AS request_bumps
, SUM(CASE WHEN gs.action = 7 THEN 1 ELSE 0 END) AS barcode_submissions
, SUM(CASE WHEN gs.action = 101 THEN 1 ELSE 0 END) AS memories_requests
, SUM(CASE WHEN gs.action = 102 THEN 1 ELSE 0 END) AS memories_purchases
, SUM(CASE WHEN gs.action = 104 THEN 1 ELSE 0 END) AS memories_category_requests
FROM game_stat AS gs
GROUP BY game_id
event_game_stat_facts.view.lkml · 144 lines
inferred
view: event_game_stat_facts {
derived_table: {
sql: SELECT
gs.game_id AS game_id
, COUNT(DISTINCT gs.fan_id) AS total_fans
, SUM(CASE WHEN gs.action = 0 THEN 1 ELSE 0 END) AS pre_registers
, SUM(CASE WHEN gs.action = 1 THEN 1 ELSE 0 END) AS request_tickets
, SUM(CASE WHEN gs.action = 2 THEN 1 ELSE 0 END) AS purchases
, SUM(CASE WHEN gs.action = 3 THEN 1 ELSE 0 END) AS bails
, SUM(CASE WHEN gs.action = 4 THEN 1 ELSE 0 END) AS category_requests
, SUM(CASE WHEN gs.action = 5 THEN 1 ELSE 0 END) AS pre_reg_notifications
, SUM(CASE WHEN gs.action = 6 THEN 1 ELSE 0 END) AS request_bumps
, SUM(CASE WHEN gs.action = 7 THEN 1 ELSE 0 END) AS barcode_submissions
, SUM(CASE WHEN gs.action = 101 THEN 1 ELSE 0 END) AS memories_requests
, SUM(CASE WHEN gs.action = 102 THEN 1 ELSE 0 END) AS memories_purchases
, SUM(CASE WHEN gs.action = 104 THEN 1 ELSE 0 END) AS memories_category_requests
FROM game_stat AS gs
GROUP BY game_id ;;
}
dimension: game_id {
type: int
primary_key: yes
}
dimension: registrations {
type: number
sql: ${request_tickets} + ${category_requests} ;;
}
dimension: total_fans {
type: number
sql: ${TABLE}.total_fans ;;
}
dimension: pre_registers {
type: number
}
dimension: request_tickets {
type: number
}
dimension: purchases {
type: number
}
dimension: bails {
type: number
}
dimension: category_requests {
type: number
}
dimension: pre_reg_notifications {
type: number
}
dimension: request_bumps {
type: number
}
dimension: barcode_submissions {
type: number
}
dimension: memories_requests {
type: number
}
dimension: memories_purchases {
type: number
}
dimension: memories_category_requests {
type: number
}
measure: total_registrations {
type: sum
sql: ${registrations} ;;
}
measure: total_pre_registers {
type: sum
sql: ${pre_registers} ;;
}
measure: percent_pre_to_registered {
type: number
sql: ${total_registrations}/NULLIF(${total_pre_registers},0) ;;
}
measure: total_request_tickets {
type: sum
sql: ${request_tickets} ;;
}
measure: total_purchases {
type: sum
sql: ${purchases} ;;
}
measure: total_bails {
type: sum
sql: ${bails} ;;
}
measure: total_category_requests {
type: sum
sql: ${category_requests} ;;
}
measure: total_pre_reg_notifications {
type: sum
sql: ${pre_reg_notifications} ;;
}
measure: total_request_bumps {
type: sum
sql: ${request_bumps} ;;
}
measure: total_barcode_submissions {
type: sum
sql: ${barcode_submissions} ;;
}
measure: total_memories_requests {
type: sum
sql: ${memories_requests} ;;
}
measure: total_memories_purchases {
type: sum
sql: ${memories_purchases} ;;
}
measure: total_memories_category_requests {
type: sum
sql: ${memories_category_requests} ;;
}
}
event_game_stat_facts.view.lookml · 89 lines
source-preserved
- view: event_game_stat_facts
derived_table:
sql: SELECT
gs.game_id AS game_id
, COUNT(DISTINCT gs.fan_id) AS total_fans
, SUM(CASE WHEN gs.action = 0 THEN 1 ELSE 0 END) AS pre_registers
, SUM(CASE WHEN gs.action = 1 THEN 1 ELSE 0 END) AS request_tickets
, SUM(CASE WHEN gs.action = 2 THEN 1 ELSE 0 END) AS purchases
, SUM(CASE WHEN gs.action = 3 THEN 1 ELSE 0 END) AS bails
, SUM(CASE WHEN gs.action = 4 THEN 1 ELSE 0 END) AS category_requests
, SUM(CASE WHEN gs.action = 5 THEN 1 ELSE 0 END) AS pre_reg_notifications
, SUM(CASE WHEN gs.action = 6 THEN 1 ELSE 0 END) AS request_bumps
, SUM(CASE WHEN gs.action = 7 THEN 1 ELSE 0 END) AS barcode_submissions
, SUM(CASE WHEN gs.action = 101 THEN 1 ELSE 0 END) AS memories_requests
, SUM(CASE WHEN gs.action = 102 THEN 1 ELSE 0 END) AS memories_purchases
, SUM(CASE WHEN gs.action = 104 THEN 1 ELSE 0 END) AS memories_category_requests
FROM game_stat AS gs
GROUP BY game_id
fields:
- dimension: game_id
type: int
primary_key: true
- dimension: registrations
type: number
sql: ${request_tickets} + ${category_requests}
- dimension: total_fans
type: number
sql: ${TABLE}.total_fans
- dimension: pre_registers
type: number
- dimension: request_tickets
type: number
- dimension: purchases
type: number
- dimension: bails
type: number
- dimension: category_requests
type: number
- dimension: pre_reg_notifications
type: number
- dimension: request_bumps
type: number
- dimension: barcode_submissions
type: number
- dimension: memories_requests
type: number
- dimension: memories_purchases
type: number
- dimension: memories_category_requests
type: number
- measure: total_registrations
type: sum
sql: ${registrations}
- measure: total_pre_registers
type: sum
sql: ${pre_registers}
- measure: percent_pre_to_registered
type: number
sql: ${total_registrations}/NULLIF(${total_pre_registers},0)
- measure: total_request_tickets
type: sum
sql: ${request_tickets}
- measure: total_purchases
type: sum
sql: ${purchases}
- measure: total_bails
type: sum
sql: ${bails}
- measure: total_category_requests
type: sum
sql: ${category_requests}
- measure: total_pre_reg_notifications
type: sum
sql: ${pre_reg_notifications}
- measure: total_request_bumps
type: sum
sql: ${request_bumps}
- measure: total_barcode_submissions
type: sum
sql: ${barcode_submissions}
- measure: total_memories_requests
type: sum
sql: ${memories_requests}
- measure: total_memories_purchases
type: sum
sql: ${memories_purchases}
- measure: total_memories_category_requests
type: sum
sql: ${memories_category_requests}
Contents
- event_game_stat_facts.sql
- event_game_stat_facts.sql
- event_game_stat_facts.view.lkml
- event_game_stat_facts.view.lookml