dbt
Parking reservations
Revenue Percent Of Month
Revenue Percent Of Month model for parking reservations.
inferred
Blocks
revenue_percent_of_month.sql · 30 lines
inferred
-- models/revenue_percent_of_month.sql
{{ config(materialized='table') }}
select daily.parking_date
,daily.parking_type
,daily.daily_revenue
,monthly.monthly_revenue
from (select to_char(parking_date, 'YYYY-MM') as parking_month
,to_char(parking_date, 'YYYY-MM-DD') as parking_date
,parking_type
,sum(net_revenue_simple) as daily_revenue
from ${{{ this }}.revenue_daily}
group by 1, 2, 3
) as daily
inner join (select to_char(parking_date, 'YYYY-MM') as parking_month
,parking_type
,sum(net_revenue_simple) as monthly_revenue
from ${{{ this }}.revenue_daily}
group by 1, 2
) as monthly
on monthly.parking_month = daily.parking_month and monthly.parking_type = daily.parking_type
# models/schema.yml
version: 2
models:
- name: revenue_percent_of_month
columns:
- name: parking
- name: parking_type
Assumptions
- materialized='table' inferred from a LookML persist hint (persist_for / datagroup / sql_trigger_value).
- schema.yml columns come from view dimensions; a primary_key dimension gets unique + not_null tests.
revenue_percent_of_month.sql · 18 lines
source-preserved
validation: not checked
select daily.parking_date
,daily.parking_type
,daily.daily_revenue
,monthly.monthly_revenue
from (select to_char(parking_date, 'YYYY-MM') as parking_month
,to_char(parking_date, 'YYYY-MM-DD') as parking_date
,parking_type
,sum(net_revenue_simple) as daily_revenue
from ${${TABLE}.revenue_daily}
group by 1, 2, 3
) as daily
inner join (select to_char(parking_date, 'YYYY-MM') as parking_month
,parking_type
,sum(net_revenue_simple) as monthly_revenue
from ${${TABLE}.revenue_daily}
group by 1, 2
) as monthly
on monthly.parking_month = daily.parking_month and monthly.parking_type = daily.parking_type
revenue_percent_of_month.view.lkml · 57 lines
inferred
view: revenue_percent_of_month {
derived_table: {
sql: select daily.parking_date
,daily.parking_type
,daily.daily_revenue
,monthly.monthly_revenue
from (select to_char(parking_date, 'YYYY-MM') as parking_month
,to_char(parking_date, 'YYYY-MM-DD') as parking_date
,parking_type
,sum(net_revenue_simple) as daily_revenue
from ${${TABLE}.revenue_daily}
group by 1, 2, 3
) as daily
inner join (select to_char(parking_date, 'YYYY-MM') as parking_month
,parking_type
,sum(net_revenue_simple) as monthly_revenue
from ${${TABLE}.revenue_daily}
group by 1, 2
) as monthly
on monthly.parking_month = daily.parking_month and monthly.parking_type = daily.parking_type ;;
persist_for: "12 hours"
}
dimension: parking {
type: time
sql: to_date(${TABLE}.parking_date, 'YYYY-MM-DD') ;;
}
dimension: parking_type {
type: string
sql: ${TABLE}.parking_type ;;
}
measure: daily_revenue {
type: sum
sql: ${TABLE}.daily_revenue ;;
}
measure: monthly_revenue {
type: sum
sql: ${TABLE}.monthly_revenue ;;
}
measure: percent_of_month {
type: number
sql: ${daily_revenue} / nullif(${monthly_revenue},0) ;;
}
measure: percent_of_month_rt {
type: running_total
sql: ${percent_of_month} ;;
}
measure: count {
type: count
}
}
revenue_percent_of_month.view.lookml · 42 lines
source-preserved
- view: revenue_percent_of_month
derived_table:
sql: select daily.parking_date
,daily.parking_type
,daily.daily_revenue
,monthly.monthly_revenue
from (select to_char(parking_date, 'YYYY-MM') as parking_month
,to_char(parking_date, 'YYYY-MM-DD') as parking_date
,parking_type
,sum(net_revenue_simple) as daily_revenue
from ${${TABLE}.revenue_daily}
group by 1, 2, 3
) as daily
inner join (select to_char(parking_date, 'YYYY-MM') as parking_month
,parking_type
,sum(net_revenue_simple) as monthly_revenue
from ${${TABLE}.revenue_daily}
group by 1, 2
) as monthly
on monthly.parking_month = daily.parking_month and monthly.parking_type = daily.parking_type
persist_for: 12 hours
fields:
- dimension: parking
type: time
sql: to_date(${TABLE}.parking_date, 'YYYY-MM-DD')
- dimension: parking_type
type: string
sql: ${TABLE}.parking_type
- measure: daily_revenue
type: sum
sql: ${TABLE}.daily_revenue
- measure: monthly_revenue
type: sum
sql: ${TABLE}.monthly_revenue
- measure: percent_of_month
type: number
sql: ${daily_revenue} / nullif(${monthly_revenue},0)
- measure: percent_of_month_rt
type: running_total
sql: ${percent_of_month}
- measure: count
type: count
Contents
- revenue_percent_of_month.sql
- revenue_percent_of_month.sql
- revenue_percent_of_month.view.lkml
- revenue_percent_of_month.view.lookml