dbt
Ecommerce marketplace
Actual
Actual model for ecommerce marketplace.
inferred
Blocks
actual.sql · 36 lines
inferred
-- models/actual.sql
{{ config(materialized='view') }}
SELECT
DATE(cart_item_fact.checkout_dt)
, category.category_name AS category
, marketing_channel.summary
, SUM(revenue_minus_vat) AS total_revenue
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 THEN cart_item_fact.user_id ELSE NULL END) AS total_new_buyers
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 AND cart_item_fact.course_or_ecomm = 'COURSE' THEN cart_item_fact.user_id ELSE NULL END) AS digital_new_buyers
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 AND cart_item_fact.course_or_ecomm = 'ECOMM' THEN cart_item_fact.user_id ELSE NULL END) AS physical_new_buyers
, SUM (CASE WHEN cart_item_fact.course_or_ecomm = 'COURSE' THEN cart_item_fact.revenue_minus_vat ELSE 0 END) AS digital_revenue
, SUM (CASE WHEN cart_item_fact.course_or_ecomm = 'ECOMM' THEN cart_item_fact.revenue_minus_vat ELSE 0 END) AS physical_revenue
FROM warehouse.cart_item_fact
LEFT JOIN warehouse.user_scorecard user_scorecard ON user_scorecard.user_id = cart_item_fact.user_id
LEFT JOIN javaprod.category category ON category.category_id = user_scorecard.primary_category_id
LEFT JOIN javaprod.external_link external_link ON external_link.external_link_id = cart_item_fact.external_link_id
LEFT JOIN javaprod.marketing_action marketing_action ON marketing_action.marketing_action_id = external_link.marketing_action_id
LEFT JOIN javaprod.marketing_channel marketing_channel ON marketing_channel.marketing_channel_id = marketing_action.marketing_channel_id
LEFT JOIN warehouse.cart_fact cart_fact ON cart_fact.cart_fact_id = cart_item_fact.cart_fact_id
GROUP BY 1, 2, 3
# models/schema.yml
version: 2
models:
- name: actual
columns:
- name: category_name
- name: summary
- name: total_revenue_dim
- name: total_new_buyers_dim
- name: digital_new_buyers_dim
- name: physical_new_buyers_dim
- name: digital_revenue_dim
- name: physical_revenue_dim
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.
actual.sql · 18 lines
source-preserved
validation: parses
SELECT
DATE(cart_item_fact.checkout_dt)
, category.category_name AS category
, marketing_channel.summary
, SUM(revenue_minus_vat) AS total_revenue
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 THEN cart_item_fact.user_id ELSE NULL END) AS total_new_buyers
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 AND cart_item_fact.course_or_ecomm = 'COURSE' THEN cart_item_fact.user_id ELSE NULL END) AS digital_new_buyers
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 AND cart_item_fact.course_or_ecomm = 'ECOMM' THEN cart_item_fact.user_id ELSE NULL END) AS physical_new_buyers
, SUM (CASE WHEN cart_item_fact.course_or_ecomm = 'COURSE' THEN cart_item_fact.revenue_minus_vat ELSE 0 END) AS digital_revenue
, SUM (CASE WHEN cart_item_fact.course_or_ecomm = 'ECOMM' THEN cart_item_fact.revenue_minus_vat ELSE 0 END) AS physical_revenue
FROM warehouse.cart_item_fact
LEFT JOIN warehouse.user_scorecard user_scorecard ON user_scorecard.user_id = cart_item_fact.user_id
LEFT JOIN javaprod.category category ON category.category_id = user_scorecard.primary_category_id
LEFT JOIN javaprod.external_link external_link ON external_link.external_link_id = cart_item_fact.external_link_id
LEFT JOIN javaprod.marketing_action marketing_action ON marketing_action.marketing_action_id = external_link.marketing_action_id
LEFT JOIN javaprod.marketing_channel marketing_channel ON marketing_channel.marketing_channel_id = marketing_action.marketing_channel_id
LEFT JOIN warehouse.cart_fact cart_fact ON cart_fact.cart_fact_id = cart_item_fact.cart_fact_id
GROUP BY 1, 2, 3
actual.view.lkml · 117 lines
inferred
view: actual {
derived_table: {
sql: SELECT
DATE(cart_item_fact.checkout_dt)
, category.category_name AS category
, marketing_channel.summary
, SUM(revenue_minus_vat) AS total_revenue
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 THEN cart_item_fact.user_id ELSE NULL END) AS total_new_buyers
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 AND cart_item_fact.course_or_ecomm = 'COURSE' THEN cart_item_fact.user_id ELSE NULL END) AS digital_new_buyers
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 AND cart_item_fact.course_or_ecomm = 'ECOMM' THEN cart_item_fact.user_id ELSE NULL END) AS physical_new_buyers
, SUM (CASE WHEN cart_item_fact.course_or_ecomm = 'COURSE' THEN cart_item_fact.revenue_minus_vat ELSE 0 END) AS digital_revenue
, SUM (CASE WHEN cart_item_fact.course_or_ecomm = 'ECOMM' THEN cart_item_fact.revenue_minus_vat ELSE 0 END) AS physical_revenue
FROM warehouse.cart_item_fact
LEFT JOIN warehouse.user_scorecard user_scorecard ON user_scorecard.user_id = cart_item_fact.user_id
LEFT JOIN javaprod.category category ON category.category_id = user_scorecard.primary_category_id
LEFT JOIN javaprod.external_link external_link ON external_link.external_link_id = cart_item_fact.external_link_id
LEFT JOIN javaprod.marketing_action marketing_action ON marketing_action.marketing_action_id = external_link.marketing_action_id
LEFT JOIN javaprod.marketing_channel marketing_channel ON marketing_channel.marketing_channel_id = marketing_action.marketing_channel_id
LEFT JOIN warehouse.cart_fact cart_fact ON cart_fact.cart_fact_id = cart_item_fact.cart_fact_id
GROUP BY 1, 2, 3 ;;
}
dimension: category_name {
sql: ${TABLE}.category_name ;;
}
dimension: summary {
sql: ${TABLE}.summary ;;
}
dimension: total_revenue_dim {
type: number
hidden: yes
sql: ${TABLE}.total_revenue ;;
}
dimension: total_new_buyers_dim {
type: number
hidden: yes
sql: ${TABLE}.total_new_buyers ;;
}
dimension: digital_new_buyers_dim {
type: number
hidden: yes
sql: ${TABLE}.digital_new_buyers ;;
}
dimension: physical_new_buyers_dim {
type: number
hidden: yes
sql: ${TABLE}.physical_new_buyers ;;
}
dimension: digital_revenue_dim {
type: number
hidden: yes
sql: ${TABLE}.digital_revenue ;;
}
dimension: physical_revenue_dim {
type: number
hidden: yes
sql: ${TABLE}.physical_revenue ;;
}
dimension_group: daily_aggregate {
type: time
timeframes: [date, month, year]
sql: ${TABLE}.date ;;
}
measure: digital_revenue {
type: sum
sql: ${digital_revenue_dim} ;;
}
measure: digital_revenue_cumulative {
type: running_total
sql: ${digital_revenue} ;;
}
measure: physical_revenue {
type: sum
sql: ${physical_revenue_dim} ;;
}
measure: physical_revenue_cumulative {
type: running_total
sql: ${physical_revenue} ;;
}
measure: total_revenue {
type: sum
sql: ${total_revenue_dim} ;;
}
measure: total_revenue_cumulative {
type: running_total
sql: ${total_revenue} ;;
}
measure: total_new_buyers {
type: sum
sql: ${total_new_buyers_dim} ;;
}
measure: digital_new_buyers {
type: sum
sql: ${digital_new_buyers_dim} ;;
}
measure: phsyical_new_buyers {
type: sum
sql: ${physical_new_buyers_dim} ;;
}
}
actual.view.lookml · 83 lines
source-preserved
- view: actual
derived_table:
sql: SELECT
DATE(cart_item_fact.checkout_dt)
, category.category_name AS category
, marketing_channel.summary
, SUM(revenue_minus_vat) AS total_revenue
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 THEN cart_item_fact.user_id ELSE NULL END) AS total_new_buyers
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 AND cart_item_fact.course_or_ecomm = 'COURSE' THEN cart_item_fact.user_id ELSE NULL END) AS digital_new_buyers
, COUNT(DISTINCT CASE WHEN cart_fact.user_paid_cart_ordinal = 1 AND cart_item_fact.course_or_ecomm = 'ECOMM' THEN cart_item_fact.user_id ELSE NULL END) AS physical_new_buyers
, SUM (CASE WHEN cart_item_fact.course_or_ecomm = 'COURSE' THEN cart_item_fact.revenue_minus_vat ELSE 0 END) AS digital_revenue
, SUM (CASE WHEN cart_item_fact.course_or_ecomm = 'ECOMM' THEN cart_item_fact.revenue_minus_vat ELSE 0 END) AS physical_revenue
FROM warehouse.cart_item_fact
LEFT JOIN warehouse.user_scorecard user_scorecard ON user_scorecard.user_id = cart_item_fact.user_id
LEFT JOIN javaprod.category category ON category.category_id = user_scorecard.primary_category_id
LEFT JOIN javaprod.external_link external_link ON external_link.external_link_id = cart_item_fact.external_link_id
LEFT JOIN javaprod.marketing_action marketing_action ON marketing_action.marketing_action_id = external_link.marketing_action_id
LEFT JOIN javaprod.marketing_channel marketing_channel ON marketing_channel.marketing_channel_id = marketing_action.marketing_channel_id
LEFT JOIN warehouse.cart_fact cart_fact ON cart_fact.cart_fact_id = cart_item_fact.cart_fact_id
GROUP BY 1, 2, 3
fields:
- dimension: category_name
sql: ${TABLE}.category_name
- dimension: summary
sql: ${TABLE}.summary
- dimension: total_revenue_dim
type: number
hidden: true
sql: ${TABLE}.total_revenue
- dimension: total_new_buyers_dim
type: number
hidden: true
sql: ${TABLE}.total_new_buyers
- dimension: digital_new_buyers_dim
type: number
hidden: true
sql: ${TABLE}.digital_new_buyers
- dimension: physical_new_buyers_dim
type: number
hidden: true
sql: ${TABLE}.physical_new_buyers
- dimension: digital_revenue_dim
type: number
hidden: true
sql: ${TABLE}.digital_revenue
- dimension: physical_revenue_dim
type: number
hidden: true
sql: ${TABLE}.physical_revenue
- dimension_group: daily_aggregate
type: time
timeframes:
- date
- month
- year
sql: ${TABLE}.date
- measure: digital_revenue
type: sum
sql: ${digital_revenue_dim}
- measure: digital_revenue_cumulative
type: running_total
sql: ${digital_revenue}
- measure: physical_revenue
type: sum
sql: ${physical_revenue_dim}
- measure: physical_revenue_cumulative
type: running_total
sql: ${physical_revenue}
- measure: total_revenue
type: sum
sql: ${total_revenue_dim}
- measure: total_revenue_cumulative
type: running_total
sql: ${total_revenue}
- measure: total_new_buyers
type: sum
sql: ${total_new_buyers_dim}
- measure: digital_new_buyers
type: sum
sql: ${digital_new_buyers_dim}
- measure: phsyical_new_buyers
type: sum
sql: ${physical_new_buyers_dim}
Contents
- actual.sql
- actual.sql
- actual.view.lkml
- actual.view.lookml