SQL Delivery alcohol

Promoted Orders

Promoted Orders model for delivery alcohol.

source-preserved

Blocks

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

SELECT
  DISTINCT so.order_id,
  sg.group,
  o.created_at,
  pt.id AS type_id,
  pt.description,
  pc.redemption_code,
  so.promo_code_id,
  IFNULL(SUM({% parameter state_6 %}SE WHEN promo_code_type_id = 3 OR (promo_code_type_id = 4 AND s.state != '{% parameter state_3 %}') THEN s.fee ELSE so.promo_code_discount END),0) as promo_code_discount,
  o.order_total
      FROM orders AS so
      LEFT JOIN stores AS s ON so.store_id = s.id
      LEFT JOIN orders AS o ON o.id = so.order_id
      LEFT JOIN market_xrefs AS xr ON so.store_id = xr.store_id
      LEFT JOIN groups AS sg ON xr.market_id = sg.id
      LEFT JOIN promo_code_redemptions AS pr ON so.order_id = pr.order_id
      LEFT JOIN promo_codes AS pc ON pr.promo_code_id = pc.id
      LEFT JOIN promo_code_types AS pt ON pc.promo_code_type_id = pt.id
      WHERE so.promo_code_id IS NOT NULL
      AND so.status = 6
      AND so.store_id <> 2
      GROUP BY so.order_id

# models/schema.yml
version: 2

models:
  - name: promoted_orders
    columns:
      - name: order_id
      - name: group
      - name: type_id
      - name: description
      - name: redemption_code
      - name: promo_code_id
      - name: promo_code_discount
      - name: order_total
      - name: delivery_fee

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.
promoted_orders.sql · 22 lines
source-preserved validation: not checked
SELECT
  DISTINCT so.order_id,
  sg.group,
  o.created_at,
  pt.id AS type_id,
  pt.description,
  pc.redemption_code,
  so.promo_code_id,
  IFNULL(SUM({% parameter state_6 %}SE WHEN promo_code_type_id = 3 OR (promo_code_type_id = 4 AND s.state != '{% parameter state_3 %}') THEN s.fee ELSE so.promo_code_discount END),0) as promo_code_discount,
  o.order_total
      FROM orders AS so
      LEFT JOIN stores AS s ON so.store_id = s.id
      LEFT JOIN orders AS o ON o.id = so.order_id
      LEFT JOIN market_xrefs AS xr ON so.store_id = xr.store_id
      LEFT JOIN groups AS sg ON xr.market_id = sg.id
      LEFT JOIN promo_code_redemptions AS pr ON so.order_id = pr.order_id
      LEFT JOIN promo_codes AS pc ON pr.promo_code_id = pc.id
      LEFT JOIN promo_code_types AS pt ON pc.promo_code_type_id = pt.id
      WHERE so.promo_code_id IS NOT NULL
      AND so.status = 6
      AND so.store_id <> 2
      GROUP BY so.order_id
promoted_orders.view.lkml · 92 lines
inferred
view: promoted_orders {
  derived_table: {
    sql: SELECT
  DISTINCT so.order_id,
  sg.group,
  o.created_at,
  pt.id AS type_id,
  pt.description,
  pc.redemption_code,
  so.promo_code_id,
  IFNULL(SUM({% parameter state_6 %}SE WHEN promo_code_type_id = 3 OR (promo_code_type_id = 4 AND s.state != '{% parameter state_3 %}') THEN s.fee ELSE so.promo_code_discount END),0) as promo_code_discount,
  o.order_total
      FROM orders AS so
      LEFT JOIN stores AS s ON so.store_id = s.id
      LEFT JOIN orders AS o ON o.id = so.order_id
      LEFT JOIN market_xrefs AS xr ON so.store_id = xr.store_id
      LEFT JOIN groups AS sg ON xr.market_id = sg.id
      LEFT JOIN promo_code_redemptions AS pr ON so.order_id = pr.order_id
      LEFT JOIN promo_codes AS pc ON pr.promo_code_id = pc.id
      LEFT JOIN promo_code_types AS pt ON pc.promo_code_type_id = pt.id
      WHERE so.promo_code_id IS NOT NULL
      AND so.status = 6
      AND so.store_id <> 2
      GROUP BY so.order_id ;;
  }

  dimension: order_id {
    type: int
    sql: ${TABLE}.order_id ;;
  }

  dimension: group {
    label: "Market"
    sql: ${TABLE}.group ;;
  }

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

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

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

  dimension: promo_code_id {
    type: int
    sql: ${TABLE}.promo_code_id ;;
  }

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

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

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

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

  measure: count {
    type: count
    drill_fields: [detail*]
  }

  measure: total_promo_code_discount {
    type: sum
    drill_fields: [detail*]
    sql: ${promo_code_discount} ;;
  }

  measure: TPV {
    type: sum
    drill_fields: [detail*]
    sql: (${order_total} + ${promo_code_discount}) ;;
  }
}
promoted_orders.view.lookml · 72 lines
source-preserved
- view: promoted_orders
  derived_table:
    sql: SELECT
  DISTINCT so.order_id,
  sg.group,
  o.created_at,
  pt.id AS type_id,
  pt.description,
  pc.redemption_code,
  so.promo_code_id,
  IFNULL(SUM({% parameter state_6 %}SE WHEN promo_code_type_id = 3 OR (promo_code_type_id = 4 AND s.state != '{% parameter state_3 %}') THEN s.fee ELSE so.promo_code_discount END),0) as promo_code_discount,
  o.order_total
      FROM orders AS so
      LEFT JOIN stores AS s ON so.store_id = s.id
      LEFT JOIN orders AS o ON o.id = so.order_id
      LEFT JOIN market_xrefs AS xr ON so.store_id = xr.store_id
      LEFT JOIN groups AS sg ON xr.market_id = sg.id
      LEFT JOIN promo_code_redemptions AS pr ON so.order_id = pr.order_id
      LEFT JOIN promo_codes AS pc ON pr.promo_code_id = pc.id
      LEFT JOIN promo_code_types AS pt ON pc.promo_code_type_id = pt.id
      WHERE so.promo_code_id IS NOT NULL
      AND so.status = 6
      AND so.store_id <> 2
      GROUP BY so.order_id
  fields:
  - dimension: order_id
    type: int
    sql: ${TABLE}.order_id
  - dimension: group
    label: Market
    sql: ${TABLE}.group
  - dimension: type_id
    type: number
    sql: ${TABLE}.type_id
  - dimension: description
    sql: ${TABLE}.description
  - dimension: redemption_code
    sql: ${TABLE}.redemption_code
  - dimension: promo_code_id
    type: int
    sql: ${TABLE}.promo_code_id
  - dimension: promo_code_discount
    type: number
    sql: ${TABLE}.promo_code_discount
  - dimension: order_total
    type: number
    sql: ${TABLE}.order_total
  - dimension: delivery_fee
    type: number
    sql: ${TABLE}.delivery_fee
  - dimension_group: created_at
    type: time
    timeframes:
    - time
    - date
    - week
    - month
    sql: ${TABLE}.created_at
  - measure: count
    type: count
    drill_fields:
    - detail*
  - measure: total_promo_code_discount
    type: sum
    drill_fields:
    - detail*
    sql: ${promo_code_discount}
  - measure: TPV
    type: sum
    drill_fields:
    - detail*
    sql: (${order_total} + ${promo_code_discount})

Contents

  • promoted_orders.sql
  • promoted_orders.sql
  • promoted_orders.view.lkml
  • promoted_orders.view.lookml