SQL
Telemedicine service
Call Coupon Aggregate
Call Coupon Aggregate model for telemedicine service.
source-preserved
Blocks
call_coupon_aggregate.sql · 35 lines
inferred
-- models/call_coupon_aggregate.sql
{{ config(materialized='view') }}
SELECT call.call_content_type_id AS call_content_type_id
, call.call_object_id AS call_object_id
, COUNT(distinct coupon.id) AS number_coupons
, SUM(COALESCE(coupon.discount, 0)) AS total_discount
, STRING_AGG(LOWER(coupon.code), '; ' ORDER BY coupon.code) AS coupon_codes
, STRING_AGG(LOWER(COALESCE(campaign.name, '(no campaign)') || ':"' || coupon.code) || '":$' || coupon.discount, '; ' ORDER BY campaign.name) AS campaigns_with_coupons
, BOOL_OR(COALESCE(campaign.name, '(no campaign)') != 'share' AND coupon.discount >= 40 AND coupon.is_first_call_only) AS has_fvf
FROM combined_call AS call
LEFT JOIN coupons_membercoupon AS membercoupon ON (call.call_content_type_id = membercoupon.call_content_type_id AND call.call_object_id = membercoupon.call_object_id)
LEFT JOIN coupons_coupon AS coupon ON coupon.id = membercoupon.coupon_id
LEFT JOIN coupons_campaign AS campaign ON coupon.campaign_id = campaign.id
GROUP BY call.call_content_type_id, call.call_object_id
# models/schema.yml
version: 2
models:
- name: call_coupon_aggregate
columns:
- name: call_content_type_id_and_call_object_id
tests:
- unique
- not_null
- name: call_content_type_id
- name: call_object_id
- name: number_coupons
- name: total_discount
- name: total_discount_tier
- name: has_discount
- name: coupon_codes
- name: campaigns_with_coupons
- name: has_fvf
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.
call_coupon_aggregate.sql · 12 lines
source-preserved
validation: parses
SELECT call.call_content_type_id AS call_content_type_id
, call.call_object_id AS call_object_id
, COUNT(distinct coupon.id) AS number_coupons
, SUM(COALESCE(coupon.discount, 0)) AS total_discount
, STRING_AGG(LOWER(coupon.code), '; ' ORDER BY coupon.code) AS coupon_codes
, STRING_AGG(LOWER(COALESCE(campaign.name, '(no campaign)') || ':"' || coupon.code) || '":$' || coupon.discount, '; ' ORDER BY campaign.name) AS campaigns_with_coupons
, BOOL_OR(COALESCE(campaign.name, '(no campaign)') != 'share' AND coupon.discount >= 40 AND coupon.is_first_call_only) AS has_fvf
FROM combined_call AS call
LEFT JOIN coupons_membercoupon AS membercoupon ON (call.call_content_type_id = membercoupon.call_content_type_id AND call.call_object_id = membercoupon.call_object_id)
LEFT JOIN coupons_coupon AS coupon ON coupon.id = membercoupon.coupon_id
LEFT JOIN coupons_campaign AS campaign ON coupon.campaign_id = campaign.id
GROUP BY call.call_content_type_id, call.call_object_id
call_coupon_aggregate.view.lkml · 92 lines
inferred
view: call_coupon_aggregate {
derived_table: {
sql: SELECT call.call_content_type_id AS call_content_type_id
, call.call_object_id AS call_object_id
, COUNT(distinct coupon.id) AS number_coupons
, SUM(COALESCE(coupon.discount, 0)) AS total_discount
, STRING_AGG(LOWER(coupon.code), '; ' ORDER BY coupon.code) AS coupon_codes
, STRING_AGG(LOWER(COALESCE(campaign.name, '(no campaign)') || ':"' || coupon.code) || '":$' || coupon.discount, '; ' ORDER BY campaign.name) AS campaigns_with_coupons
, BOOL_OR(COALESCE(campaign.name, '(no campaign)') != 'share' AND coupon.discount >= 40 AND coupon.is_first_call_only) AS has_fvf
FROM combined_call AS call
LEFT JOIN coupons_membercoupon AS membercoupon ON (call.call_content_type_id = membercoupon.call_content_type_id AND call.call_object_id = membercoupon.call_object_id)
LEFT JOIN coupons_coupon AS coupon ON coupon.id = membercoupon.coupon_id
LEFT JOIN coupons_campaign AS campaign ON coupon.campaign_id = campaign.id
GROUP BY call.call_content_type_id, call.call_object_id ;;
}
dimension: call_content_type_id_and_call_object_id {
primary_key: yes
hidden: yes
sql: CASE WHEN ${TABLE}.call_content_type_id IS NULL THEN NULL
ELSE CONCAT(${TABLE}.call_content_type_id::text, ':', ${TABLE}.call_object_id::text)
END ;;
}
dimension: call_content_type_id {
type: int
sql: ${TABLE}.call_content_type_id ;;
}
dimension: call_object_id {
type: int
sql: ${TABLE}.call_object_id ;;
}
dimension: number_coupons {
type: number
sql: ${TABLE}.number_coupons ;;
}
dimension: total_discount {
type: number
sql: ${TABLE}.total_discount ;;
}
dimension: total_discount_tier {
type: tier
sql: ${TABLE}.total_discount ;;
}
dimension: has_discount {
type: yesno
sql: ${total_discount} > 0 ;;
}
dimension: coupon_codes {
sql: ${TABLE}.coupon_codes ;;
}
dimension: campaigns_with_coupons {
sql: ${TABLE}.campaigns_with_coupons ;;
}
dimension: has_fvf {
type: yesno
sql: ${TABLE}.has_fvf ;;
}
measure: fvf_calls {
type: count
filters: [has_fvf: "Yes"]
}
measure: non_fvf_calls {
type: count
filters: [has_fvf: "No"]
}
measure: discounted_calls {
type: count
filters: [has_discount: "Yes"]
}
measure: sum_number_coupons {
type: sum
sql: ${number_coupons} ;;
}
measure: sum_discounts {
type: number
sql: SUM(${total_discount}) ;;
}
}
call_coupon_aggregate.view.lookml · 64 lines
source-preserved
- view: call_coupon_aggregate
derived_table:
sql: SELECT call.call_content_type_id AS call_content_type_id
, call.call_object_id AS call_object_id
, COUNT(distinct coupon.id) AS number_coupons
, SUM(COALESCE(coupon.discount, 0)) AS total_discount
, STRING_AGG(LOWER(coupon.code), '; ' ORDER BY coupon.code) AS coupon_codes
, STRING_AGG(LOWER(COALESCE(campaign.name, '(no campaign)') || ':"' || coupon.code) || '":$' || coupon.discount, '; ' ORDER BY campaign.name) AS campaigns_with_coupons
, BOOL_OR(COALESCE(campaign.name, '(no campaign)') != 'share' AND coupon.discount >= 40 AND coupon.is_first_call_only) AS has_fvf
FROM combined_call AS call
LEFT JOIN coupons_membercoupon AS membercoupon ON (call.call_content_type_id = membercoupon.call_content_type_id AND call.call_object_id = membercoupon.call_object_id)
LEFT JOIN coupons_coupon AS coupon ON coupon.id = membercoupon.coupon_id
LEFT JOIN coupons_campaign AS campaign ON coupon.campaign_id = campaign.id
GROUP BY call.call_content_type_id, call.call_object_id
fields:
- dimension: call_content_type_id_and_call_object_id
primary_key: true
hidden: true
sql: CASE WHEN ${TABLE}.call_content_type_id IS NULL THEN NULL
ELSE CONCAT(${TABLE}.call_content_type_id::text, ':', ${TABLE}.call_object_id::text)
END
- dimension: call_content_type_id
type: int
sql: ${TABLE}.call_content_type_id
- dimension: call_object_id
type: int
sql: ${TABLE}.call_object_id
- dimension: number_coupons
type: number
sql: ${TABLE}.number_coupons
- dimension: total_discount
type: number
sql: ${TABLE}.total_discount
- dimension: total_discount_tier
type: tier
sql: ${TABLE}.total_discount
- dimension: has_discount
type: yesno
sql: ${total_discount} > 0
- dimension: coupon_codes
sql: ${TABLE}.coupon_codes
- dimension: campaigns_with_coupons
sql: ${TABLE}.campaigns_with_coupons
- dimension: has_fvf
type: yesno
sql: ${TABLE}.has_fvf
- measure: fvf_calls
type: count
filters:
- has_fvf: Yes
- measure: non_fvf_calls
type: count
filters:
- has_fvf: No
- measure: discounted_calls
type: count
filters:
- has_discount: Yes
- measure: sum_number_coupons
type: sum
sql: ${number_coupons}
- measure: sum_discounts
type: number
sql: SUM(${total_discount})
Contents
- call_coupon_aggregate.sql
- call_coupon_aggregate.sql
- call_coupon_aggregate.view.lkml
- call_coupon_aggregate.view.lookml