dbt
App loyalty
Iarr Redemptions Fact
Iarr Redemptions Fact model for app loyalty.
inferred
Blocks
iarr_redemptions_fact.sql · 31 lines
inferred
-- models/iarr_redemptions_fact.sql
{{ config(materialized='table') }}
SELECT unique_user_id, row_text, brandview_name, retailer_brand_name, sum(unit_amount*product_quantity) as share_amount
FROM (
SELECT iarr.unique_user_id, iarr.row_text, iarr.brandview_name, iarr.retailer_brand_name, iarr.unit_amount, sum(iarr.product_quantity) as product_quantity
from fmcg_di.instore_all_rows_report iarr
left join (
select distinct unique_user_id
from fmcg_di.redemptions
where {% condition deal_id %} redemptions.deal_id {% endcondition %}
) r on r.unique_user_id = iarr.unique_user_id
where {% condition retailer_category_id %} iarr.retailer_category_id {% endcondition %}
and iarr.product_validated = 1
and r.unique_user_id is not null
and {% condition receipt_date %} iarr.receipt_date {% endcondition %}
group by 1,2,3,4,5
) X group by 1,2,3,4
# models/schema.yml
version: 2
models:
- name: iarr_redemptions_fact
columns:
- name: retailer_brand_name
- name: unit_amount
- name: unique_user_id
- name: row_text
- name: brandview_name
- name: share_amount
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.
iarr_redemptions_fact.sql · 15 lines
source-preserved
validation: not checked
SELECT unique_user_id, row_text, brandview_name, retailer_brand_name, sum(unit_amount*product_quantity) as share_amount
FROM (
SELECT iarr.unique_user_id, iarr.row_text, iarr.brandview_name, iarr.retailer_brand_name, iarr.unit_amount, sum(iarr.product_quantity) as product_quantity
from fmcg_di.instore_all_rows_report iarr
left join (
select distinct unique_user_id
from fmcg_di.redemptions
where {% condition deal_id %} redemptions.deal_id {% endcondition %}
) r on r.unique_user_id = iarr.unique_user_id
where {% condition retailer_category_id %} iarr.retailer_category_id {% endcondition %}
and iarr.product_validated = 1
and r.unique_user_id is not null
and {% condition receipt_date %} iarr.receipt_date {% endcondition %}
group by 1,2,3,4,5
) X group by 1,2,3,4
iarr_redemptions_fact.view.lkml · 55 lines
inferred
view: iarr_redemptions_fact {
derived_table: {
sql: SELECT unique_user_id, row_text, brandview_name, retailer_brand_name, sum(unit_amount*product_quantity) as share_amount
FROM (
SELECT iarr.unique_user_id, iarr.row_text, iarr.brandview_name, iarr.retailer_brand_name, iarr.unit_amount, sum(iarr.product_quantity) as product_quantity
from fmcg_di.instore_all_rows_report iarr
left join (
select distinct unique_user_id
from fmcg_di.redemptions
where {% condition deal_id %} redemptions.deal_id {% endcondition %}
) r on r.unique_user_id = iarr.unique_user_id
where {% condition retailer_category_id %} iarr.retailer_category_id {% endcondition %}
and iarr.product_validated = 1
and r.unique_user_id is not null
and {% condition receipt_date %} iarr.receipt_date {% endcondition %}
group by 1,2,3,4,5
) X group by 1,2,3,4 ;;
persist_for: "1 minute"
}
dimension: retailer_brand_name {
sql: ${TABLE}.retailer_brand_name ;;
}
dimension: unit_amount {
type: int
hidden: yes
sql: ${TABLE}.unit_amount ;;
}
dimension: unique_user_id {
type: int
sql: ${TABLE}.unique_user_id ;;
}
dimension: row_text {
sql: ${TABLE}.row_text ;;
}
dimension: brandview_name {
sql: ${TABLE}.brandview_name ;;
}
dimension: share_amount {
type: number
hidden: yes
sql: ${TABLE}.share_amount ;;
}
measure: total_share_amount {
type: sum
value_format: "#.00"
sql: ${share_amount} ;;
}
}
iarr_redemptions_fact.view.lookml · 40 lines
source-preserved
- view: iarr_redemptions_fact
derived_table:
sql: SELECT unique_user_id, row_text, brandview_name, retailer_brand_name, sum(unit_amount*product_quantity) as share_amount
FROM (
SELECT iarr.unique_user_id, iarr.row_text, iarr.brandview_name, iarr.retailer_brand_name, iarr.unit_amount, sum(iarr.product_quantity) as product_quantity
from fmcg_di.instore_all_rows_report iarr
left join (
select distinct unique_user_id
from fmcg_di.redemptions
where {% condition deal_id %} redemptions.deal_id {% endcondition %}
) r on r.unique_user_id = iarr.unique_user_id
where {% condition retailer_category_id %} iarr.retailer_category_id {% endcondition %}
and iarr.product_validated = 1
and r.unique_user_id is not null
and {% condition receipt_date %} iarr.receipt_date {% endcondition %}
group by 1,2,3,4,5
) X group by 1,2,3,4
persist_for: 1 minute
fields:
- dimension: retailer_brand_name
sql: ${TABLE}.retailer_brand_name
- dimension: unit_amount
type: int
hidden: true
sql: ${TABLE}.unit_amount
- dimension: unique_user_id
type: int
sql: ${TABLE}.unique_user_id
- dimension: row_text
sql: ${TABLE}.row_text
- dimension: brandview_name
sql: ${TABLE}.brandview_name
- dimension: share_amount
type: number
hidden: true
sql: ${TABLE}.share_amount
- measure: total_share_amount
type: sum
value_format: '#.00'
sql: ${share_amount}
Contents
- iarr_redemptions_fact.sql
- iarr_redemptions_fact.sql
- iarr_redemptions_fact.view.lkml
- iarr_redemptions_fact.view.lookml