LKML Marketing digital

Orders

Orders model for marketing digital.

inferred

Blocks

orders.view.lkml · 249 lines
inferred
view: orders {
  sql_table_name: flexdb.orders ;;

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

  dimension: is_test {
    type: yesno
    sql: ${TABLE}.is_test ;;
  }

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

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

  dimension: quantity {
    type: number
    sql: greatest(
      ifnull(
        (
          select sum(quantity)
          from order_details od
          where od.order_id = ${TABLE}.order_id
        )
        , 0
      )
      , ${TABLE}.quantity
    ) ;;
  }

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

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

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

  dimension: order_total {
    type: number
    value_format: "#0.00"
    sql: ${TABLE}.price ;;
  }

  dimension: order_total_with_shipping {
    type: number
    value_format: "#0.00"
    sql: ${TABLE}.price + ${TABLE}.shipping ;;
  }

  dimension: total_amount_of_order_tier {
    description: "puts the total amount of orders into a tier."
    type: tier
    sql: ${order_total} ;;
  }

  dimension: tax {
    type: number
    value_format: "#0.00"
    sql: ${TABLE}.tax ;;
  }

  dimension: shipping {
    type: number
    value_format: "#0.00"
    sql: ${TABLE}.shipping ;;
  }

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

  dimension: next_bill {
    type: time
    sql: ${TABLE}.next_bill ;;
  }

  dimension: next_ship {
    type: time
    sql: ${TABLE}.next_ship ;;
  }

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

  dimension: date_canceled {
    type: time
    sql: ${TABLE}.date_canceled ;;
  }

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

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

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

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

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

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

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

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

  dimension: shipped {
    type: yesno
    sql: ${TABLE}.shipped ;;
  }

  dimension: is_complete {
    type: yesno
    sql: ${TABLE}.is_complete ;;
  }

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

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

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

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

  dimension: cycle {
    type: number
    sql: (SELECT COUNT(*)
FROM orders o
WHERE o.lead_id=${TABLE}.lead_id
AND NOT o.status in ('Declined','Hard Declined','Discarded','Pending','Voided')
AND o.date_ordered <= ${TABLE}.date_ordered
AND o.extended_type = 'Repeater') ;;
  }

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

  dimension: order_sequence_number {
    type: number
    sql: (SELECT COUNT(*)
FROM orders o
WHERE o.order_id < ${TABLE}.order_id
AND o.lead_id=${TABLE}.lead_id) + 1 ;;
  }

  dimension: is_first_purchase {
    type: yesno
    sql: ${order_sequence_number} = 1 ;;
  }

  dimension: days_til_first_cancel {
    type: int
    sql: ROUND((${TABLE}.date_canceled - ${TABLE}.date_ordered)/86400) ;;
  }

  dimension: is_active {
    type: yesno
    sql: (CASE WHEN ${TABLE}.status = 'Shipped' THEN 1
     WHEN ${TABLE}.status = 'Awaiting Shipment' THEN 1
     ELSE 0
END) ;;
  }

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

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

  measure: average_total_amount_of_order {
    type: average
    value_format: "$#,##0.00"
    sql: ${order_total} ;;
  }

  measure: total_first_purchase_revenue {
    type: sum
    value_format: "$#,##0.00"
    filters: [is_first_purchase: "True"]
    sql: ${order_total} ;;
  }

  measure: sum_total_amount_of_order {
    type: sum
    value_format: "$#,##0.00"
    sql: ${order_total} ;;
  }

  measure: sum_total_amount_of_shipping {
    type: sum
    value_format: "$#,##0.00"
    sql: ${shipping} ;;
  }

  measure: sum_of_order_and_shipping {
    type: sum
    value_format: "$#,##0.00"
    sql: ${order_total} + ${shipping} ;;
  }
}
orders.view.lookml · 165 lines
source-preserved
- view: orders
  sql_table_name: flexdb.orders
  fields:
  - dimension: order_id
    type: int
    primary_key: true
    sql: ${TABLE}.order_id
  - dimension: is_test
    type: yesno
    sql: ${TABLE}.is_test
  - dimension: lead_id
    type: int
    sql: ${TABLE}.lead_id
  - dimension: product_id
    type: int
    sql: ${TABLE}.product_id
  - dimension: quantity
    type: number
    sql: greatest(
      ifnull(
        (
          select sum(quantity)
          from order_details od
          where od.order_id = ${TABLE}.order_id
        )
        , 0
      )
      , ${TABLE}.quantity
    )
  - dimension: retail_products
    sql: ${TABLE}.retail_products
  - dimension: onetime_skus
    sql: ${TABLE}.onetime_skus
  - dimension: recur_skus
    sql: ${TABLE}.recur_skus
  - dimension: order_total
    type: number
    value_format: '#0.00'
    sql: ${TABLE}.price
  - dimension: order_total_with_shipping
    type: number
    value_format: '#0.00'
    sql: ${TABLE}.price + ${TABLE}.shipping
  - dimension: total_amount_of_order_tier
    type: tier
    description: puts the total amount of orders into a tier.
    sql: ${order_total}
  - dimension: tax
    type: number
    value_format: '#0.00'
    sql: ${TABLE}.tax
  - dimension: shipping
    type: number
    value_format: '#0.00'
    sql: ${TABLE}.shipping
  - dimension: type
    sql: ${TABLE}.type
  - dimension: next_bill
    type: time
    sql: ${TABLE}.next_bill
  - dimension: next_ship
    type: time
    sql: ${TABLE}.next_ship
  - dimension: ship_interval
    type: number
    sql: ${TABLE}.ship_interval
  - dimension: date_canceled
    type: time
    sql: ${TABLE}.date_canceled
  - dimension: date_rma
    sql: ${TABLE}.date_rma
  - dimension: date_reactivated
    sql: ${TABLE}.date_reactivated
  - dimension: date_extended
    sql: ${TABLE}.date_extended
  - dimension: date_restarted
    sql: ${TABLE}.date_restarted
  - dimension: reason
    sql: ${TABLE}.reason
  - dimension: cancel_notes
    sql: ${TABLE}.cancel_notes
  - dimension: status
    sql: ${TABLE}.status
  - dimension: source
    sql: ${TABLE}.source
  - dimension: shipped
    type: yesno
    sql: ${TABLE}.shipped
  - dimension: is_complete
    type: yesno
    sql: ${TABLE}.is_complete
  - dimension: selldown_id
    type: number
    sql: ${TABLE}.selldown_id
  - dimension: extended_type
    sql: ${TABLE}.extended_type
  - dimension: from_reattempt
    type: number
    sql: ${TABLE}.from_reattempt
  - dimension: can_ignore
    type: number
    sql: ${TABLE}.can_ignore
  - dimension: cycle
    type: number
    sql: (SELECT COUNT(*)
FROM orders o
WHERE o.lead_id=${TABLE}.lead_id
AND NOT o.status in ('Declined','Hard Declined','Discarded','Pending','Voided')
AND o.date_ordered <= ${TABLE}.date_ordered
AND o.extended_type = 'Repeater')
  - dimension: has_recurring_upsell
    sql: ${TABLE}.has_recurring_upsell
  - dimension: order_sequence_number
    type: number
    sql: (SELECT COUNT(*)
FROM orders o
WHERE o.order_id < ${TABLE}.order_id
AND o.lead_id=${TABLE}.lead_id) + 1
  - dimension: is_first_purchase
    type: yesno
    sql: ${order_sequence_number} = 1
  - dimension: days_til_first_cancel
    type: int
    sql: ROUND((${TABLE}.date_canceled - ${TABLE}.date_ordered)/86400)
  - dimension: is_active
    type: yesno
    sql: (CASE WHEN ${TABLE}.status = 'Shipped' THEN 1
     WHEN ${TABLE}.status = 'Awaiting Shipment' THEN 1
     ELSE 0
END)
  - dimension_group: date_ordered
    type: time
    timeframes:
    - time
    - date
    - week
    - month
    datatype: epoch
    sql: ${TABLE}.date_ordered
  - measure: count
    type: count
    drill_fields:
    - detail*
  - measure: average_total_amount_of_order
    type: average
    value_format: '$#,##0.00'
    sql: ${order_total}
  - measure: total_first_purchase_revenue
    type: sum
    value_format: '$#,##0.00'
    filters:
    - is_first_purchase: True
    sql: ${order_total}
  - measure: sum_total_amount_of_order
    type: sum
    value_format: '$#,##0.00'
    sql: ${order_total}
  - measure: sum_total_amount_of_shipping
    type: sum
    value_format: '$#,##0.00'
    sql: ${shipping}
  - measure: sum_of_order_and_shipping
    type: sum
    value_format: '$#,##0.00'
    sql: ${order_total} + ${shipping}

Contents

  • orders.view.lkml
  • orders.view.lookml