SQL
Design marketplace
Revenue Summary
Revenue Summary model for design marketplace.
source-preserved
Blocks
revenue_summary.sql · 73 lines
inferred
-- models/revenue_summary.sql
{{ config(materialized='table') }}
SELECT DATE(timecreated) AS timecreated
, COUNT(CASE WHEN S.TYPE = 'contest' THEN id ELSE 0 END) AS contest_orders
, SUM(CASE WHEN S.TYPE = 'contest' THEN productcount ELSE 0 END) AS contest_productcount
, SUM(CASE WHEN S.TYPE = 'contest' THEN platformcount ELSE 0 END) AS contest_platformcount
, SUM(CASE WHEN S.TYPE = 'contest' THEN revenue ELSE 0 END) AS contest_revenue
, SUM(CASE WHEN S.TYPE = 'contest' THEN profit ELSE 0 END) AS contest_profit
, SUM(CASE WHEN S.TYPE = 'contest' THEN discount ELSE 0 END) AS contest_discount
, COUNT(CASE WHEN S.TYPE = 'project' THEN id ELSE 0 END) AS project_orders
, SUM(CASE WHEN S.TYPE = 'project' THEN productcount ELSE 0 END) AS project_productcount
, SUM(CASE WHEN S.TYPE = 'project' THEN platformcount ELSE 0 END) AS project_platformcount
, SUM(CASE WHEN S.TYPE = 'project' THEN revenue ELSE 0 END) AS project_revenue
, SUM(CASE WHEN S.TYPE = 'project' THEN profit ELSE 0 END) AS project_profit
, SUM(CASE WHEN S.TYPE = 'project' THEN discount ELSE 0 END) AS project_discount
, COUNT(CASE WHEN S.TYPE = 'tasks' THEN id ELSE 0 END) AS task_orders
, SUM(CASE WHEN S.TYPE = 'task' THEN productcount ELSE 0 END) AS task_productcount
, SUM(CASE WHEN S.TYPE = 'task' THEN platformcount ELSE 0 END) AS task_platformcount
, SUM(CASE WHEN S.TYPE = 'task' THEN revenue ELSE 0 END) AS task_revenue
, SUM(CASE WHEN S.TYPE = 'task' THEN profit ELSE 0 END) AS task_profit
, SUM(CASE WHEN S.TYPE = 'task' THEN discount ELSE 0 END) AS task_discount
, COUNT(CASE WHEN S.TYPE = 'template' THEN id ELSE 0 END) AS template_orders
, SUM(CASE WHEN S.TYPE = 'template' THEN productcount ELSE 0 END) AS template_productcount
, SUM(CASE WHEN S.TYPE = 'tempalte' THEN platformcount ELSE 0 END) AS template_platformcount
, SUM(CASE WHEN S.TYPE = 'template' THEN revenue ELSE 0 END) AS template_revenue
, SUM(CASE WHEN S.TYPE = 'template' THEN profit ELSE 0 END) AS template_profit
, SUM(CASE WHEN S.TYPE = 'template' THEN discount ELSE 0 END) AS template_discount
FROM sale S
GROUP BY 1
# models/schema.yml
version: 2
models:
- name: revenue_summary
columns:
- name: timecreated
- name: total_revenue_dim
- name: total_diff
- name: total_time_frames
- name: contest_orders
- name: contest_productcount
- name: contest_platformcount
- name: contest_revenue
- name: contest_profit
- name: contest_discount
- name: contest_diff
- name: contest_time_frames
- name: project_orders
- name: project_productcount
- name: project_platformcount
- name: project_revenue
- name: project_profit
- name: project_discount
- name: project_diff
- name: project_time_frames
- name: task_orders
- name: task_productcount
- name: task_platformcount
- name: task_revenue
- name: task_profit
- name: task_discount
- name: task_diff
- name: task_time_frames
- name: template_orders
- name: template_productcount
- name: template_platformcount
- name: template_revenue
- name: template_profit
- name: template_discount
- name: template_diff
- name: template_time_frames
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_summary.sql · 27 lines
source-preserved
validation: parses
SELECT DATE(timecreated) AS timecreated
, COUNT(CASE WHEN S.TYPE = 'contest' THEN id ELSE 0 END) AS contest_orders
, SUM(CASE WHEN S.TYPE = 'contest' THEN productcount ELSE 0 END) AS contest_productcount
, SUM(CASE WHEN S.TYPE = 'contest' THEN platformcount ELSE 0 END) AS contest_platformcount
, SUM(CASE WHEN S.TYPE = 'contest' THEN revenue ELSE 0 END) AS contest_revenue
, SUM(CASE WHEN S.TYPE = 'contest' THEN profit ELSE 0 END) AS contest_profit
, SUM(CASE WHEN S.TYPE = 'contest' THEN discount ELSE 0 END) AS contest_discount
, COUNT(CASE WHEN S.TYPE = 'project' THEN id ELSE 0 END) AS project_orders
, SUM(CASE WHEN S.TYPE = 'project' THEN productcount ELSE 0 END) AS project_productcount
, SUM(CASE WHEN S.TYPE = 'project' THEN platformcount ELSE 0 END) AS project_platformcount
, SUM(CASE WHEN S.TYPE = 'project' THEN revenue ELSE 0 END) AS project_revenue
, SUM(CASE WHEN S.TYPE = 'project' THEN profit ELSE 0 END) AS project_profit
, SUM(CASE WHEN S.TYPE = 'project' THEN discount ELSE 0 END) AS project_discount
, COUNT(CASE WHEN S.TYPE = 'tasks' THEN id ELSE 0 END) AS task_orders
, SUM(CASE WHEN S.TYPE = 'task' THEN productcount ELSE 0 END) AS task_productcount
, SUM(CASE WHEN S.TYPE = 'task' THEN platformcount ELSE 0 END) AS task_platformcount
, SUM(CASE WHEN S.TYPE = 'task' THEN revenue ELSE 0 END) AS task_revenue
, SUM(CASE WHEN S.TYPE = 'task' THEN profit ELSE 0 END) AS task_profit
, SUM(CASE WHEN S.TYPE = 'task' THEN discount ELSE 0 END) AS task_discount
, COUNT(CASE WHEN S.TYPE = 'template' THEN id ELSE 0 END) AS template_orders
, SUM(CASE WHEN S.TYPE = 'template' THEN productcount ELSE 0 END) AS template_productcount
, SUM(CASE WHEN S.TYPE = 'tempalte' THEN platformcount ELSE 0 END) AS template_platformcount
, SUM(CASE WHEN S.TYPE = 'template' THEN revenue ELSE 0 END) AS template_revenue
, SUM(CASE WHEN S.TYPE = 'template' THEN profit ELSE 0 END) AS template_profit
, SUM(CASE WHEN S.TYPE = 'template' THEN discount ELSE 0 END) AS template_discount
FROM sale S
GROUP BY 1
revenue_summary.view.lkml · 291 lines
inferred
view: revenue_summary {
derived_table: {
sql: SELECT DATE(timecreated) AS timecreated
, COUNT(CASE WHEN S.TYPE = 'contest' THEN id ELSE 0 END) AS contest_orders
, SUM(CASE WHEN S.TYPE = 'contest' THEN productcount ELSE 0 END) AS contest_productcount
, SUM(CASE WHEN S.TYPE = 'contest' THEN platformcount ELSE 0 END) AS contest_platformcount
, SUM(CASE WHEN S.TYPE = 'contest' THEN revenue ELSE 0 END) AS contest_revenue
, SUM(CASE WHEN S.TYPE = 'contest' THEN profit ELSE 0 END) AS contest_profit
, SUM(CASE WHEN S.TYPE = 'contest' THEN discount ELSE 0 END) AS contest_discount
, COUNT(CASE WHEN S.TYPE = 'project' THEN id ELSE 0 END) AS project_orders
, SUM(CASE WHEN S.TYPE = 'project' THEN productcount ELSE 0 END) AS project_productcount
, SUM(CASE WHEN S.TYPE = 'project' THEN platformcount ELSE 0 END) AS project_platformcount
, SUM(CASE WHEN S.TYPE = 'project' THEN revenue ELSE 0 END) AS project_revenue
, SUM(CASE WHEN S.TYPE = 'project' THEN profit ELSE 0 END) AS project_profit
, SUM(CASE WHEN S.TYPE = 'project' THEN discount ELSE 0 END) AS project_discount
, COUNT(CASE WHEN S.TYPE = 'tasks' THEN id ELSE 0 END) AS task_orders
, SUM(CASE WHEN S.TYPE = 'task' THEN productcount ELSE 0 END) AS task_productcount
, SUM(CASE WHEN S.TYPE = 'task' THEN platformcount ELSE 0 END) AS task_platformcount
, SUM(CASE WHEN S.TYPE = 'task' THEN revenue ELSE 0 END) AS task_revenue
, SUM(CASE WHEN S.TYPE = 'task' THEN profit ELSE 0 END) AS task_profit
, SUM(CASE WHEN S.TYPE = 'task' THEN discount ELSE 0 END) AS task_discount
, COUNT(CASE WHEN S.TYPE = 'template' THEN id ELSE 0 END) AS template_orders
, SUM(CASE WHEN S.TYPE = 'template' THEN productcount ELSE 0 END) AS template_productcount
, SUM(CASE WHEN S.TYPE = 'tempalte' THEN platformcount ELSE 0 END) AS template_platformcount
, SUM(CASE WHEN S.TYPE = 'template' THEN revenue ELSE 0 END) AS template_revenue
, SUM(CASE WHEN S.TYPE = 'template' THEN profit ELSE 0 END) AS template_profit
, SUM(CASE WHEN S.TYPE = 'template' THEN discount ELSE 0 END) AS template_discount
FROM sale S
GROUP BY 1 ;;
persist_for: "12 hours"
}
dimension: timecreated {
type: time
sql: ${TABLE}.timecreated ;;
}
dimension: total_revenue_dim {
hidden: yes
sql: ${contest_revenue} + ${project_revenue} + ${task_revenue} + ${template_revenue} ;;
}
dimension: total_diff {
type: number
hidden: yes
sql: ${total_revenue} - ${targets.totals} ;;
}
dimension: total_time_frames {
sql: ${TABLE}.timecreated ;;
}
dimension: contest_orders {
type: number
sql: ${TABLE}.contest_orders ;;
}
dimension: contest_productcount {
type: number
sql: ${TABLE}.contest_productcount ;;
}
dimension: contest_platformcount {
type: number
sql: ${TABLE}.contest_platformcount ;;
}
dimension: contest_revenue {
type: number
hidden: yes
sql: ${TABLE}.contest_revenue ;;
}
dimension: contest_profit {
type: number
sql: ${TABLE}.contest_profit ;;
}
dimension: contest_discount {
type: number
sql: ${TABLE}.contest_discount ;;
}
dimension: contest_diff {
type: number
hidden: yes
sql: ${contest_revenue} - ${targets.contests} ;;
}
dimension: contest_time_frames {
sql: ${TABLE}.timecreated ;;
}
dimension: project_orders {
type: number
sql: ${TABLE}.project_orders ;;
}
dimension: project_productcount {
type: number
sql: ${TABLE}.project_productcount ;;
}
dimension: project_platformcount {
type: number
sql: ${TABLE}.project_platformcount ;;
}
dimension: project_revenue {
type: number
hidden: yes
sql: ${TABLE}.project_revenue ;;
}
dimension: project_profit {
type: number
sql: ${TABLE}.project_profit ;;
}
dimension: project_discount {
type: number
sql: ${TABLE}.project_discount ;;
}
dimension: project_diff {
type: number
hidden: yes
sql: ${project_revenue} - ${targets.projects} ;;
}
dimension: project_time_frames {
sql: ${TABLE}.timecreated ;;
}
dimension: task_orders {
type: number
sql: ${TABLE}.task_orders ;;
}
dimension: task_productcount {
type: number
sql: ${TABLE}.task_productcount ;;
}
dimension: task_platformcount {
type: number
sql: ${TABLE}.task_platformcount ;;
}
dimension: task_revenue {
type: number
hidden: yes
sql: ${TABLE}.task_revenue ;;
}
dimension: task_profit {
type: number
sql: ${TABLE}.task_profit ;;
}
dimension: task_discount {
type: number
sql: ${TABLE}.task_discount ;;
}
dimension: task_diff {
type: number
hidden: yes
sql: ${task_revenue} - ${targets.tasks} ;;
}
dimension: task_time_frames {
sql: ${TABLE}.timecreated ;;
}
dimension: template_orders {
type: number
sql: ${TABLE}.template_orders ;;
}
dimension: template_productcount {
type: number
sql: ${TABLE}.template_productcount ;;
}
dimension: template_platformcount {
type: number
sql: ${TABLE}.template_platformcount ;;
}
dimension: template_revenue {
type: number
hidden: yes
sql: ${TABLE}.template_revenue ;;
}
dimension: template_profit {
type: number
sql: ${TABLE}.template_profit ;;
}
dimension: template_discount {
type: number
sql: ${TABLE}.template_discount ;;
}
dimension: template_diff {
type: number
hidden: yes
sql: ${template_revenue} - ${targets.templates} ;;
}
dimension: template_time_frames {
sql: ${TABLE}.timecreated ;;
}
measure: total_revenue {
type: sum
sql: ${total_revenue_dim} ;;
}
measure: total_targ {
type: sum
sql: ${targets.totals} ;;
}
measure: total_total_diff {
type: sum
sql: ${total_diff} ;;
}
measure: contest_total_revenue {
type: sum
sql: ${contest_revenue} ;;
}
measure: contest_targ {
type: sum
sql: ${targets.contests} ;;
}
measure: contest_total_diff {
type: sum
sql: ${contest_diff} ;;
}
measure: project_total_revenue {
type: sum
sql: ${project_revenue} ;;
}
measure: project_targ {
type: sum
sql: ${targets.projects} ;;
}
measure: project_total_diff {
type: sum
sql: ${project_diff} ;;
}
measure: task_total_revenue {
type: sum
sql: ${task_revenue} ;;
}
measure: task_targ {
type: sum
sql: ${targets.tasks} ;;
}
measure: task_total_diff {
type: sum
sql: ${task_diff} ;;
}
measure: template_total_revenue {
type: sum
sql: ${template_revenue} ;;
}
measure: template_targ {
type: sum
sql: ${targets.templates} ;;
}
measure: template_total_diff {
type: sum
sql: ${template_diff} ;;
}
}
revenue_summary.view.lookml · 188 lines
source-preserved
- view: revenue_summary
derived_table:
sql: SELECT DATE(timecreated) AS timecreated
, COUNT(CASE WHEN S.TYPE = 'contest' THEN id ELSE 0 END) AS contest_orders
, SUM(CASE WHEN S.TYPE = 'contest' THEN productcount ELSE 0 END) AS contest_productcount
, SUM(CASE WHEN S.TYPE = 'contest' THEN platformcount ELSE 0 END) AS contest_platformcount
, SUM(CASE WHEN S.TYPE = 'contest' THEN revenue ELSE 0 END) AS contest_revenue
, SUM(CASE WHEN S.TYPE = 'contest' THEN profit ELSE 0 END) AS contest_profit
, SUM(CASE WHEN S.TYPE = 'contest' THEN discount ELSE 0 END) AS contest_discount
, COUNT(CASE WHEN S.TYPE = 'project' THEN id ELSE 0 END) AS project_orders
, SUM(CASE WHEN S.TYPE = 'project' THEN productcount ELSE 0 END) AS project_productcount
, SUM(CASE WHEN S.TYPE = 'project' THEN platformcount ELSE 0 END) AS project_platformcount
, SUM(CASE WHEN S.TYPE = 'project' THEN revenue ELSE 0 END) AS project_revenue
, SUM(CASE WHEN S.TYPE = 'project' THEN profit ELSE 0 END) AS project_profit
, SUM(CASE WHEN S.TYPE = 'project' THEN discount ELSE 0 END) AS project_discount
, COUNT(CASE WHEN S.TYPE = 'tasks' THEN id ELSE 0 END) AS task_orders
, SUM(CASE WHEN S.TYPE = 'task' THEN productcount ELSE 0 END) AS task_productcount
, SUM(CASE WHEN S.TYPE = 'task' THEN platformcount ELSE 0 END) AS task_platformcount
, SUM(CASE WHEN S.TYPE = 'task' THEN revenue ELSE 0 END) AS task_revenue
, SUM(CASE WHEN S.TYPE = 'task' THEN profit ELSE 0 END) AS task_profit
, SUM(CASE WHEN S.TYPE = 'task' THEN discount ELSE 0 END) AS task_discount
, COUNT(CASE WHEN S.TYPE = 'template' THEN id ELSE 0 END) AS template_orders
, SUM(CASE WHEN S.TYPE = 'template' THEN productcount ELSE 0 END) AS template_productcount
, SUM(CASE WHEN S.TYPE = 'tempalte' THEN platformcount ELSE 0 END) AS template_platformcount
, SUM(CASE WHEN S.TYPE = 'template' THEN revenue ELSE 0 END) AS template_revenue
, SUM(CASE WHEN S.TYPE = 'template' THEN profit ELSE 0 END) AS template_profit
, SUM(CASE WHEN S.TYPE = 'template' THEN discount ELSE 0 END) AS template_discount
FROM sale S
GROUP BY 1
persist_for: 12 hours
fields:
- dimension: timecreated
type: time
sql: ${TABLE}.timecreated
- dimension: total_revenue_dim
hidden: true
sql: ${contest_revenue} + ${project_revenue} + ${task_revenue} + ${template_revenue}
- dimension: total_diff
type: number
hidden: true
sql: ${total_revenue} - ${targets.totals}
- dimension: total_time_frames
sql: ${TABLE}.timecreated
- dimension: contest_orders
type: number
sql: ${TABLE}.contest_orders
- dimension: contest_productcount
type: number
sql: ${TABLE}.contest_productcount
- dimension: contest_platformcount
type: number
sql: ${TABLE}.contest_platformcount
- dimension: contest_revenue
type: number
hidden: true
sql: ${TABLE}.contest_revenue
- dimension: contest_profit
type: number
sql: ${TABLE}.contest_profit
- dimension: contest_discount
type: number
sql: ${TABLE}.contest_discount
- dimension: contest_diff
type: number
hidden: true
sql: ${contest_revenue} - ${targets.contests}
- dimension: contest_time_frames
sql: ${TABLE}.timecreated
- dimension: project_orders
type: number
sql: ${TABLE}.project_orders
- dimension: project_productcount
type: number
sql: ${TABLE}.project_productcount
- dimension: project_platformcount
type: number
sql: ${TABLE}.project_platformcount
- dimension: project_revenue
type: number
hidden: true
sql: ${TABLE}.project_revenue
- dimension: project_profit
type: number
sql: ${TABLE}.project_profit
- dimension: project_discount
type: number
sql: ${TABLE}.project_discount
- dimension: project_diff
type: number
hidden: true
sql: ${project_revenue} - ${targets.projects}
- dimension: project_time_frames
sql: ${TABLE}.timecreated
- dimension: task_orders
type: number
sql: ${TABLE}.task_orders
- dimension: task_productcount
type: number
sql: ${TABLE}.task_productcount
- dimension: task_platformcount
type: number
sql: ${TABLE}.task_platformcount
- dimension: task_revenue
type: number
hidden: true
sql: ${TABLE}.task_revenue
- dimension: task_profit
type: number
sql: ${TABLE}.task_profit
- dimension: task_discount
type: number
sql: ${TABLE}.task_discount
- dimension: task_diff
type: number
hidden: true
sql: ${task_revenue} - ${targets.tasks}
- dimension: task_time_frames
sql: ${TABLE}.timecreated
- dimension: template_orders
type: number
sql: ${TABLE}.template_orders
- dimension: template_productcount
type: number
sql: ${TABLE}.template_productcount
- dimension: template_platformcount
type: number
sql: ${TABLE}.template_platformcount
- dimension: template_revenue
type: number
hidden: true
sql: ${TABLE}.template_revenue
- dimension: template_profit
type: number
sql: ${TABLE}.template_profit
- dimension: template_discount
type: number
sql: ${TABLE}.template_discount
- dimension: template_diff
type: number
hidden: true
sql: ${template_revenue} - ${targets.templates}
- dimension: template_time_frames
sql: ${TABLE}.timecreated
- measure: total_revenue
type: sum
sql: ${total_revenue_dim}
- measure: total_targ
type: sum
sql: ${targets.totals}
- measure: total_total_diff
type: sum
sql: ${total_diff}
- measure: contest_total_revenue
type: sum
sql: ${contest_revenue}
- measure: contest_targ
type: sum
sql: ${targets.contests}
- measure: contest_total_diff
type: sum
sql: ${contest_diff}
- measure: project_total_revenue
type: sum
sql: ${project_revenue}
- measure: project_targ
type: sum
sql: ${targets.projects}
- measure: project_total_diff
type: sum
sql: ${project_diff}
- measure: task_total_revenue
type: sum
sql: ${task_revenue}
- measure: task_targ
type: sum
sql: ${targets.tasks}
- measure: task_total_diff
type: sum
sql: ${task_diff}
- measure: template_total_revenue
type: sum
sql: ${template_revenue}
- measure: template_targ
type: sum
sql: ${targets.templates}
- measure: template_total_diff
type: sum
sql: ${template_diff}
Contents
- revenue_summary.sql
- revenue_summary.sql
- revenue_summary.view.lkml
- revenue_summary.view.lookml