SQL Insurance tech

Top Categories

Top Categories model for insurance tech.

source-preserved

Blocks

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

SELECT insurance_product_category_dimension."FirstLevelCategoryName" as category_name,
  RANK () OVER
  (
    ORDER BY COUNT(*) DESC
  ) rank
FROM "Dwh_Fct"."AggrOrderMeasures" AS aggr_order_measures
LEFT JOIN "Dwh_Dim"."DateDimension" AS created_date
  ON (created_date."DateKey") = (aggr_order_measures."CreatedDateKey")
LEFT JOIN "Dwh_Dim"."InsuranceProductCategoryDimension" AS insurance_product_category_dimension
  ON (aggr_order_measures."InsuranceProductCategoryKey") = (insurance_product_category_dimension."InsuranceProductCategoryKey")
WHERE {% condition created_date.day_date %} created_date."DayDate" {% endcondition %}
GROUP BY 1

# models/schema.yml
version: 2

models:
  - name: top_categories
    columns:
      - name: category_name
        tests:
          - unique
          - not_null
      - name: rank
      - name: top_categories
      - name: top_category_names

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.
top_categories.sql · 12 lines
source-preserved validation: not checked
SELECT insurance_product_category_dimension."FirstLevelCategoryName" as category_name,
  RANK () OVER
  (
    ORDER BY COUNT(*) DESC
  ) rank
FROM "Dwh_Fct"."AggrOrderMeasures" AS aggr_order_measures
LEFT JOIN "Dwh_Dim"."DateDimension" AS created_date
  ON (created_date."DateKey") = (aggr_order_measures."CreatedDateKey")
LEFT JOIN "Dwh_Dim"."InsuranceProductCategoryDimension" AS insurance_product_category_dimension
  ON (aggr_order_measures."InsuranceProductCategoryKey") = (insurance_product_category_dimension."InsuranceProductCategoryKey")
WHERE {% condition created_date.day_date %} created_date."DayDate" {% endcondition %}
GROUP BY 1
top_categories.view.lkml · 44 lines
inferred
view: top_categories {
  derived_table: {
    sql: SELECT insurance_product_category_dimension."FirstLevelCategoryName" as category_name,
  RANK () OVER
  (
    ORDER BY COUNT(*) DESC
  ) rank
FROM "Dwh_Fct"."AggrOrderMeasures" AS aggr_order_measures
LEFT JOIN "Dwh_Dim"."DateDimension" AS created_date
  ON (created_date."DateKey") = (aggr_order_measures."CreatedDateKey")
LEFT JOIN "Dwh_Dim"."InsuranceProductCategoryDimension" AS insurance_product_category_dimension
  ON (aggr_order_measures."InsuranceProductCategoryKey") = (insurance_product_category_dimension."InsuranceProductCategoryKey")
WHERE {% condition created_date.day_date %} created_date."DayDate" {% endcondition %}
GROUP BY 1 ;;
  }

  dimension: category_name {
    primary_key: yes
    hidden: yes
    sql: ${TABLE}.category_name ;;
  }

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

  dimension: top_categories {
    type: yesno
    hidden: yes
    sql: ${TABLE}.rank < 4 ;;
  }

  dimension: top_category_names {
    sql: CASE WHEN ${top_categories} = 'Yes' then ${category_name} else 'Other' end ;;
  }

  measure: min_rank {
    type: min
    hidden: yes
    sql: ${rank} ;;
  }
}
top_categories.view.lookml · 32 lines
source-preserved
- view: top_categories
  derived_table:
    sql: SELECT insurance_product_category_dimension."FirstLevelCategoryName" as category_name,
  RANK () OVER
  (
    ORDER BY COUNT(*) DESC
  ) rank
FROM "Dwh_Fct"."AggrOrderMeasures" AS aggr_order_measures
LEFT JOIN "Dwh_Dim"."DateDimension" AS created_date
  ON (created_date."DateKey") = (aggr_order_measures."CreatedDateKey")
LEFT JOIN "Dwh_Dim"."InsuranceProductCategoryDimension" AS insurance_product_category_dimension
  ON (aggr_order_measures."InsuranceProductCategoryKey") = (insurance_product_category_dimension."InsuranceProductCategoryKey")
WHERE {% condition created_date.day_date %} created_date."DayDate" {% endcondition %}
GROUP BY 1
  fields:
  - dimension: category_name
    primary_key: true
    hidden: true
    sql: ${TABLE}.category_name
  - dimension: rank
    type: int
    hidden: true
    sql: ${TABLE}.rank
  - dimension: top_categories
    type: yesno
    hidden: true
    sql: ${TABLE}.rank < 4
  - dimension: top_category_names
    sql: CASE WHEN ${top_categories} = 'Yes' then ${category_name} else 'Other' end
  - measure: min_rank
    type: min
    sql: ${rank}

Contents

  • top_categories.sql
  • top_categories.sql
  • top_categories.view.lkml
  • top_categories.view.lookml