SQL Ecommerce beauty

Company Inventory

Company Inventory model for ecommerce beauty.

source-preserved

Blocks

company_inventory.sql · 29 lines
inferred
-- models/company_inventory.sql
{{ config(materialized='table') }}

SELECT
CAST(@rownum := @rownum + 1 AS UNSIGNED) AS prim_key,
t.*
FROM (
SELECT di.variant_id
, di.sku, di.sku_short
, di.item_name
, sum(coalesce(on_hand, 0)) as on_hand
, min(coalesce(on_sales_order, 0)) as on_sales_order, sum(coalesce(on_hand,0)) - min(coalesce(on_sales_order,0)) as available_to_sell
from inventory di
group by di.variant_id, di.sku, di.sku_short, di.item_name) t,
(SELECT @rownum := 0) r

# models/schema.yml
version: 2

models:
  - name: company_inventory
    columns:
      - name: prim_key
        tests:
          - unique
          - not_null
      - name: sku
      - name: item_name
      - name: variant_id

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.
company_inventory.sql · 12 lines
source-preserved validation: parses
SELECT
CAST(@rownum := @rownum + 1 AS UNSIGNED) AS prim_key,
t.*
FROM (
SELECT di.variant_id
, di.sku, di.sku_short
, di.item_name
, sum(coalesce(on_hand, 0)) as on_hand
, min(coalesce(on_sales_order, 0)) as on_sales_order, sum(coalesce(on_hand,0)) - min(coalesce(on_sales_order,0)) as available_to_sell
from inventory di
group by di.variant_id, di.sku, di.sku_short, di.item_name) t,
(SELECT @rownum := 0) r
company_inventory.view.lkml · 62 lines
inferred
view: company_inventory {
  derived_table: {
    sql: SELECT
CAST(@rownum := @rownum + 1 AS UNSIGNED) AS prim_key,
t.*
FROM (
SELECT di.variant_id
, di.sku, di.sku_short
, di.item_name
, sum(coalesce(on_hand, 0)) as on_hand
, min(coalesce(on_sales_order, 0)) as on_sales_order, sum(coalesce(on_hand,0)) - min(coalesce(on_sales_order,0)) as available_to_sell
from inventory di
group by di.variant_id, di.sku, di.sku_short, di.item_name) t,
(SELECT @rownum := 0) r ;;
    persist_for: "12 hours"
  }

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

  dimension: sku {
    label: "SKU"
    sql: ${TABLE}.sku ;;
  }

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

  dimension: variant_id {
    type: int
    hidden: yes
    sql: ${TABLE}.variant_id ;;
  }

  measure: on_hand {
    type: int
    value_format: "#,##0"
    sql: ${TABLE}.on_hand ;;
  }

  measure: on_sales_order {
    type: int
    value_format: "#,##0"
    sql: ${TABLE}.on_sales_order ;;
  }

  measure: available_to_sell {
    type: int
    value_format: "#,##0"
    sql: ${TABLE}.available_to_sell ;;
  }

  measure: on_hand_materials_cost {
    type: number
    sql: ${on_hand} * ${variant_cost.materials_cost} ;;
  }
}
company_inventory.view.lookml · 45 lines
source-preserved
- view: company_inventory
  derived_table:
    sql: SELECT
CAST(@rownum := @rownum + 1 AS UNSIGNED) AS prim_key,
t.*
FROM (
SELECT di.variant_id
, di.sku, di.sku_short
, di.item_name
, sum(coalesce(on_hand, 0)) as on_hand
, min(coalesce(on_sales_order, 0)) as on_sales_order, sum(coalesce(on_hand,0)) - min(coalesce(on_sales_order,0)) as available_to_sell
from inventory di
group by di.variant_id, di.sku, di.sku_short, di.item_name) t,
(SELECT @rownum := 0) r
    persist_for: 12 hours
  fields:
  - dimension: prim_key
    type: int
    primary_key: true
    hidden: true
    sql: ${TABLE}.prim_key
  - dimension: sku
    label: SKU
    sql: ${TABLE}.sku
  - dimension: item_name
    sql: ${TABLE}.item_name
  - dimension: variant_id
    type: int
    hidden: true
    sql: ${TABLE}.variant_id
  - measure: on_hand
    type: int
    value_format: '#,##0'
    sql: ${TABLE}.on_hand
  - measure: on_sales_order
    type: int
    value_format: '#,##0'
    sql: ${TABLE}.on_sales_order
  - measure: available_to_sell
    type: int
    value_format: '#,##0'
    sql: ${TABLE}.available_to_sell
  - measure: on_hand_materials_cost
    type: number
    sql: ${on_hand} * ${variant_cost.materials_cost}

Contents

  • company_inventory.sql
  • company_inventory.sql
  • company_inventory.view.lkml
  • company_inventory.view.lookml