dbt Saas legislation

Account Facts

Account Facts model for saas legislation.

inferred

Blocks

account_facts.sql · 30 lines
inferred
-- models/account_facts.sql
{{ config(materialized='view') }}

SELECT
  a.id,
  MIN(o.close_date) as customer_created_date,
  current_date - MIN(o.close_date) as days_as_customer,
  SUM(o.amount) total_value
FROM
  salesforce.opportunity o
  LEFT JOIN salesforce.account a ON (a.id = o.account_id)
WHERE
  1=1
  AND o.stage_name = 'Closed Won'
  AND a.is_deleted = 'false'
  AND o.is_deleted = 'false'
GROUP BY
  1
ORDER BY
  1

# models/schema.yml
version: 2

models:
  - name: account_facts
    columns:
      - name: id
      - name: days_as_customer
      - name: total_value

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.
account_facts.sql · 17 lines
source-preserved validation: parses
SELECT
  a.id,
  MIN(o.close_date) as customer_created_date,
  current_date - MIN(o.close_date) as days_as_customer,
  SUM(o.amount) total_value
FROM
  salesforce.opportunity o
  LEFT JOIN salesforce.account a ON (a.id = o.account_id)
WHERE
  1=1
  AND o.stage_name = 'Closed Won'
  AND a.is_deleted = 'false'
  AND o.is_deleted = 'false'
GROUP BY
  1
ORDER BY
  1
account_facts.view.lkml · 46 lines
inferred
view: account_facts {
  derived_table: {
    sql: SELECT
  a.id,
  MIN(o.close_date) as customer_created_date,
  current_date - MIN(o.close_date) as days_as_customer,
  SUM(o.amount) total_value
FROM
  salesforce.opportunity o
  LEFT JOIN salesforce.account a ON (a.id = o.account_id)
WHERE
  1=1
  AND o.stage_name = 'Closed Won'
  AND a.is_deleted = 'false'
  AND o.is_deleted = 'false'
GROUP BY
  1
ORDER BY
  1 ;;
  }

  dimension: id {
    sql: ${TABLE}.id ;;
  }

  dimension: days_as_customer {
    type: number
    sql: ${TABLE}.days_as_customer ;;
  }

  dimension: total_value {
    type: number
    sql: ${TABLE}.total_value ;;
  }

  dimension_group: customer_created {
    type: time
    timeframes: [date, week, month]
    sql: ${TABLE}.customer_created_date ;;
  }

  measure: count {
    type: count
    drill_fields: [detail*]
  }
}
account_facts.view.lookml · 39 lines
source-preserved
- view: account_facts
  derived_table:
    sql: SELECT
  a.id,
  MIN(o.close_date) as customer_created_date,
  current_date - MIN(o.close_date) as days_as_customer,
  SUM(o.amount) total_value
FROM
  salesforce.opportunity o
  LEFT JOIN salesforce.account a ON (a.id = o.account_id)
WHERE
  1=1
  AND o.stage_name = 'Closed Won'
  AND a.is_deleted = 'false'
  AND o.is_deleted = 'false'
GROUP BY
  1
ORDER BY
  1
  fields:
  - dimension: id
    sql: ${TABLE}.id
  - dimension: days_as_customer
    type: number
    sql: ${TABLE}.days_as_customer
  - dimension: total_value
    type: number
    sql: ${TABLE}.total_value
  - dimension_group: customer_created
    type: time
    timeframes:
    - date
    - week
    - month
    sql: ${TABLE}.customer_created_date
  - measure: count
    type: count
    drill_fields:
    - detail*

Contents

  • account_facts.sql
  • account_facts.sql
  • account_facts.view.lkml
  • account_facts.view.lookml