dbt
Crowdfunding platform
Dt S Contribution User
Dt S Contribution User model for crowdfunding platform.
inferred
Blocks
dt_s_contribution_user.sql · 32 lines
inferred
-- models/dt_s_contribution_user.sql
{{ config(materialized='view') }}
select
a.id,
a.user_id,
b.user_id as admin_id,
a.api_user_id as contrib_api_user_id,
b.api_user_id as admin_api_user_id,
a.campaign_id,
a.creation_date,
a.charge_date,
a.status,
amount/100 as amount
from contributions a
join campaigns b
on a.campaign_id = b.id
where a.status in ('postauth_accepted', 'postauth_approved', 'sale_approved', 'credit_released', 'preauth_approved')
# models/schema.yml
version: 2
models:
- name: dt_s_contribution_user
columns:
- name: user_id
- name: admin_id
- name: id
- name: campaign_id
- name: contrib_api_user_id
- name: admin_api_user_id
- name: status
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.
dt_s_contribution_user.sql · 15 lines
source-preserved
validation: parses
select
a.id,
a.user_id,
b.user_id as admin_id,
a.api_user_id as contrib_api_user_id,
b.api_user_id as admin_api_user_id,
a.campaign_id,
a.creation_date,
a.charge_date,
a.status,
amount/100 as amount
from contributions a
join campaigns b
on a.campaign_id = b.id
where a.status in ('postauth_accepted', 'postauth_approved', 'sale_approved', 'credit_released', 'preauth_approved')
dt_s_contribution_user.view.lkml · 72 lines
inferred
view: dt_s_contribution_user {
derived_table: {
sql: select
a.id,
a.user_id,
b.user_id as admin_id,
a.api_user_id as contrib_api_user_id,
b.api_user_id as admin_api_user_id,
a.campaign_id,
a.creation_date,
a.charge_date,
a.status,
amount/100 as amount
from contributions a
join campaigns b
on a.campaign_id = b.id
where a.status in ('postauth_accepted', 'postauth_approved', 'sale_approved', 'credit_released', 'preauth_approved') ;;
}
dimension: user_id {
}
dimension: admin_id {
}
dimension: id {
}
dimension: campaign_id {
}
dimension: contrib_api_user_id {
}
dimension: admin_api_user_id {
}
dimension: status {
}
dimension_group: creation_date {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.creation_date ;;
}
dimension_group: charge_date {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.charge_date ;;
}
measure: count_contributors {
type: count_distinct
sql: ${TABLE}.user_id ;;
}
measure: count_admins {
type: count_distinct
sql: ${TABLE}.admin_id ;;
}
measure: count_campaigns {
type: count_distinct
sql: ${TABLE}.campaign_id ;;
}
measure: amount {
type: sum
sql: ${TABLE}.amount ;;
}
}
dt_s_contribution_user.view.lookml · 51 lines
source-preserved
- view: dt_s_contribution_user
derived_table:
sql: select
a.id,
a.user_id,
b.user_id as admin_id,
a.api_user_id as contrib_api_user_id,
b.api_user_id as admin_api_user_id,
a.campaign_id,
a.creation_date,
a.charge_date,
a.status,
amount/100 as amount
from contributions a
join campaigns b
on a.campaign_id = b.id
where a.status in ('postauth_accepted', 'postauth_approved', 'sale_approved', 'credit_released', 'preauth_approved')
fields:
- dimension: user_id
- dimension: admin_id
- dimension: id
- dimension: campaign_id
- dimension: contrib_api_user_id
- dimension: admin_api_user_id
- dimension: status
- dimension_group: creation_date
type: time
timeframes:
- date
- week
- month
sql: ${TABLE}.creation_date
- dimension_group: charge_date
type: time
timeframes:
- date
- week
- month
sql: ${TABLE}.charge_date
- measure: count_contributors
type: count_distinct
sql: ${TABLE}.user_id
- measure: count_admins
type: count_distinct
sql: ${TABLE}.admin_id
- measure: count_campaigns
type: count_distinct
sql: ${TABLE}.campaign_id
- measure: amount
type: sum
sql: ${TABLE}.amount
Contents
- dt_s_contribution_user.sql
- dt_s_contribution_user.sql
- dt_s_contribution_user.view.lkml
- dt_s_contribution_user.view.lookml