SQL
Mobile ticketing
Event Order Date Fperformances
Event Order Date Fperformances model for mobile ticketing.
source-preserved
Blocks
event_order_date_fperformances.sql · 35 lines
inferred
-- models/event_order_date_fperformances.sql
{{ config(materialized='view') }}
select
min(c.date) as earliest_txn_date,
max(c.date) as latest_txn_date,
t.EventId as event_id,
count(distinct b.orderid) as event_order_id_count
from
customer_purchases as b
inner join
transactions as c
on b.orderid = c.orderid
inner join
event_entries as t
on b.productid = t.id
where
b.producttype = 'T'
and
b.status = 'Payment Received'
group by t.eventid
# models/schema.yml
version: 2
models:
- name: event_order_date_fperformances
columns:
- name: event_order_id_count
description: "This is the order count for the entire event. This value will be repeated if the event is split into multiple rows, so do not total this."
- name: event_id
tests:
- unique
- not_null
- name: transaction_date_filter_flag
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_order_date_fperformances.sql · 18 lines
source-preserved
validation: parses
select
min(c.date) as earliest_txn_date,
max(c.date) as latest_txn_date,
t.EventId as event_id,
count(distinct b.orderid) as event_order_id_count
from
customer_purchases as b
inner join
transactions as c
on b.orderid = c.orderid
inner join
event_entries as t
on b.productid = t.id
where
b.producttype = 'T'
and
b.status = 'Payment Received'
group by t.eventid
event_order_date_fperformances.view.lkml · 65 lines
inferred
view: event_order_date_fperformances {
derived_table: {
sql: select
min(c.date) as earliest_txn_date,
max(c.date) as latest_txn_date,
t.EventId as event_id,
count(distinct b.orderid) as event_order_id_count
from
customer_purchases as b
inner join
transactions as c
on b.orderid = c.orderid
inner join
event_entries as t
on b.productid = t.id
where
b.producttype = 'T'
and
b.status = 'Payment Received'
group by t.eventid ;;
}
dimension: event_order_id_count {
label: "Unique Orders Count (for entire event)"
description: "This is the order count for the entire event. This value will be repeated if the event is split into multiple rows, so do not total this."
type: number
sql: IF(${TABLE}.event_order_id_count > 0, ${TABLE}.event_order_id_count, 0) ;;
}
dimension: event_id {
type: number
primary_key: yes
hidden: yes
sql: ${TABLE}.event_id ;;
}
dimension: transaction_date_filter_flag {
label: "Earliest Transaction Date Filter Flag"
type: yesno
sql: ( {% condition transaction_date_filter %} ${earliest_txn_date} {% endcondition %}
) ;;
}
dimension_group: earliest_txn {
label: "Earliest Transaction"
description: "This is the earliest order date at the event level"
type: time
timeframes: [date, week, month, month_num, year, hour_of_day]
sql: ${TABLE}.earliest_txn_date ;;
}
dimension_group: latest_txn {
label: "Latest Transaction"
description: "This is the latest order date at the event level"
type: time
timeframes: [time, date, week, month, month_num, year, hour_of_day]
sql: ${TABLE}.latest_txn_date ;;
}
measure: count {
type: count
hidden: yes
drill_fields: [detail*]
}
}
event_order_date_fperformances.view.lookml · 61 lines
source-preserved
- view: event_order_date_fperformances
derived_table:
sql: select
min(c.date) as earliest_txn_date,
max(c.date) as latest_txn_date,
t.EventId as event_id,
count(distinct b.orderid) as event_order_id_count
from
customer_purchases as b
inner join
transactions as c
on b.orderid = c.orderid
inner join
event_entries as t
on b.productid = t.id
where
b.producttype = 'T'
and
b.status = 'Payment Received'
group by t.eventid
fields:
- dimension: event_order_id_count
type: number
label: Unique Orders Count (for entire event)
description: This is the order count for the entire event. This value will be repeated if the event is split into multiple rows, so do not total this.
sql: IF(${TABLE}.event_order_id_count > 0, ${TABLE}.event_order_id_count, 0)
- dimension: event_id
type: number
primary_key: true
hidden: true
sql: ${TABLE}.event_id
- dimension: transaction_date_filter_flag
type: yesno
label: Earliest Transaction Date Filter Flag
sql: ( {% condition transaction_date_filter %} ${earliest_txn_date} {% endcondition %}
)
- dimension_group: earliest_txn
type: time
timeframes:
- date
- week
- month
- month_num
- year
- hour_of_day
sql: ${TABLE}.earliest_txn_date
- dimension_group: latest_txn
type: time
timeframes:
- time
- date
- week
- month
- month_num
- year
- hour_of_day
sql: ${TABLE}.latest_txn_date
- measure: count
type: count
drill_fields:
- detail*
Contents
- event_order_date_fperformances.sql
- event_order_date_fperformances.sql
- event_order_date_fperformances.view.lkml
- event_order_date_fperformances.view.lookml