SQL Advertising technology

Audience Maritalstatus Distribution Clicks

Audience Maritalstatus Distribution Clicks model for advertising technology.

source-preserved

Blocks

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

with df_dc_jct as(
  select count(distinct df2.adnxsuid) as usercount, dc.geoid, df2.insertionorderid
  FROM
      analytics_data df2
  JOIN
      audience_coordinates dc
  ON
      df2.lat = dc.latitude
      AND df2.long = dc.longitude
  WHERE df2.isclicked = true
  group by dc.geoid, df2.insertionorderid
)
select
  insertionorderid,
  key,
  ratio_to_report(distribution) over(partition by insertionorderid)
from (
  select  df_dc_jct.insertionorderid,
      da.key,
      sum(df_dc_jct.usercount * geo_dist)  as distribution
  from df_dc_jct
    join (
      select geoid,
        key,
        ratio_to_report(value) over(partition by geoid) as geo_dist
          from audience_maritalstatus
          order by geoid, key
    )  da
    on df_dc_jct.geoid = da.geoid
  group by df_dc_jct.insertionorderid, da.key
)

# models/schema.yml
version: 2

models:
  - name: audience_maritalstatus_distribution_clicks
    columns:
      - name: insertionorder_id
      - name: marital_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.
audience_maritalstatus_distribution_clicks.sql · 31 lines
source-preserved validation: parses
with df_dc_jct as(
  select count(distinct df2.adnxsuid) as usercount, dc.geoid, df2.insertionorderid
  FROM
      analytics_data df2
  JOIN
      audience_coordinates dc
  ON
      df2.lat = dc.latitude
      AND df2.long = dc.longitude
  WHERE df2.isclicked = true
  group by dc.geoid, df2.insertionorderid
)
select
  insertionorderid,
  key,
  ratio_to_report(distribution) over(partition by insertionorderid)
from (
  select  df_dc_jct.insertionorderid,
      da.key,
      sum(df_dc_jct.usercount * geo_dist)  as distribution
  from df_dc_jct
    join (
      select geoid,
        key,
        ratio_to_report(value) over(partition by geoid) as geo_dist
          from audience_maritalstatus
          order by geoid, key
    )  da
    on df_dc_jct.geoid = da.geoid
  group by df_dc_jct.insertionorderid, da.key
)
audience_maritalstatus_distribution_clicks.view.lkml · 48 lines
inferred
view: audience_maritalstatus_distribution_clicks {
  derived_table: {
    sql: with df_dc_jct as(
  select count(distinct df2.adnxsuid) as usercount, dc.geoid, df2.insertionorderid
  FROM
      analytics_data df2
  JOIN
      audience_coordinates dc
  ON
      df2.lat = dc.latitude
      AND df2.long = dc.longitude
  WHERE df2.isclicked = true
  group by dc.geoid, df2.insertionorderid
)
select
  insertionorderid,
  key,
  ratio_to_report(distribution) over(partition by insertionorderid)
from (
  select  df_dc_jct.insertionorderid,
      da.key,
      sum(df_dc_jct.usercount * geo_dist)  as distribution
  from df_dc_jct
    join (
      select geoid,
        key,
        ratio_to_report(value) over(partition by geoid) as geo_dist
          from audience_maritalstatus
          order by geoid, key
    )  da
    on df_dc_jct.geoid = da.geoid
  group by df_dc_jct.insertionorderid, da.key
) ;;
  }

  dimension: insertionorder_id {
    sql: ${TABLE}.insertionorderid ;;
  }

  dimension: marital_status {
    sql: ${TABLE}.key ;;
  }

  measure: ratio {
    type: sum
    sql: 100.0* ${TABLE}.ratio_to_report ;;
  }
}
audience_maritalstatus_distribution_clicks.view.lookml · 41 lines
source-preserved
- view: audience_maritalstatus_distribution_clicks
  derived_table:
    sql: with df_dc_jct as(
  select count(distinct df2.adnxsuid) as usercount, dc.geoid, df2.insertionorderid
  FROM
      analytics_data df2
  JOIN
      audience_coordinates dc
  ON
      df2.lat = dc.latitude
      AND df2.long = dc.longitude
  WHERE df2.isclicked = true
  group by dc.geoid, df2.insertionorderid
)
select
  insertionorderid,
  key,
  ratio_to_report(distribution) over(partition by insertionorderid)
from (
  select  df_dc_jct.insertionorderid,
      da.key,
      sum(df_dc_jct.usercount * geo_dist)  as distribution
  from df_dc_jct
    join (
      select geoid,
        key,
        ratio_to_report(value) over(partition by geoid) as geo_dist
          from audience_maritalstatus
          order by geoid, key
    )  da
    on df_dc_jct.geoid = da.geoid
  group by df_dc_jct.insertionorderid, da.key
)
  fields:
  - dimension: insertionorder_id
    sql: ${TABLE}.insertionorderid
  - dimension: marital_status
    sql: ${TABLE}.key
  - measure: ratio
    type: sum
    sql: 100.0* ${TABLE}.ratio_to_report

Contents

  • audience_maritalstatus_distribution_clicks.sql
  • audience_maritalstatus_distribution_clicks.sql
  • audience_maritalstatus_distribution_clicks.view.lkml
  • audience_maritalstatus_distribution_clicks.view.lookml