SQL
Communications platform
Parent Organization
Parent Organization model for communications platform.
source-preserved
Blocks
parent_organization.sql · 30 lines
inferred
-- models/parent_organization.sql
{{ config(materialized='view') }}
SELECT
parent_org.org_id AS org_id,
parent_org.parent_org_id AS parent_org_id,
org.name + " (parent)" AS parent_org_name
FROM (
SELECT
objectId AS org_id,
CASE WHEN UPPER(name) CONTAINS 'BERNIE' THEN 'parent_org_placeholder' ELSE objectId END AS parent_org_id,
FROM
source_db.Organization) parent_org
INNER JOIN
source_db.Organization org
ON
parent_org.parent_org_id = org.objectId
# models/schema.yml
version: 2
models:
- name: parent_organization
columns:
- name: parent_organization_id
- name: parent_organization_name
- name: organization_id
- name: is_in_org_limit
- name: parent_organization_name_or_other
description: "Use this to select the top N organizations, and group all other orgs into an \"Other\" group."
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.
parent_organization.sql · 14 lines
source-preserved
validation: not checked
SELECT
parent_org.org_id AS org_id,
parent_org.parent_org_id AS parent_org_id,
org.name + " (parent)" AS parent_org_name
FROM (
SELECT
objectId AS org_id,
CASE WHEN UPPER(name) CONTAINS 'BERNIE' THEN 'parent_org_placeholder' ELSE objectId END AS parent_org_id,
FROM
source_db.Organization) parent_org
INNER JOIN
source_db.Organization org
ON
parent_org.parent_org_id = org.objectId
parent_organization.view.lkml · 46 lines
inferred
view: parent_organization {
derived_table: {
sql: SELECT
parent_org.org_id AS org_id,
parent_org.parent_org_id AS parent_org_id,
org.name + " (parent)" AS parent_org_name
FROM (
SELECT
objectId AS org_id,
CASE WHEN UPPER(name) CONTAINS 'BERNIE' THEN 'parent_org_placeholder' ELSE objectId END AS parent_org_id,
FROM
source_db.Organization) parent_org
INNER JOIN
source_db.Organization org
ON
parent_org.parent_org_id = org.objectId ;;
}
dimension: parent_organization_id {
type: string
sql: ${TABLE}.parent_org_id ;;
}
dimension: parent_organization_name {
type: string
sql: ${TABLE}.parent_org_name ;;
}
dimension: organization_id {
type: string
hidden: yes
sql: ${TABLE}.org_id ;;
}
dimension: is_in_org_limit {
type: yesno
hidden: yes
sql: {% condition organization_limit %} ${organization_rank.rank} {% endcondition %} ;;
}
dimension: parent_organization_name_or_other {
description: "Use this to select the top N organizations, and group all other orgs into an \"Other\" group."
type: string
sql: CASE WHEN ${is_in_org_limit} THEN ${parent_organization_name} ELSE 'Other' END ;;
}
}
parent_organization.view.lookml · 35 lines
source-preserved
- view: parent_organization
derived_table:
sql: SELECT
parent_org.org_id AS org_id,
parent_org.parent_org_id AS parent_org_id,
org.name + " (parent)" AS parent_org_name
FROM (
SELECT
objectId AS org_id,
CASE WHEN UPPER(name) CONTAINS 'BERNIE' THEN 'parent_org_placeholder' ELSE objectId END AS parent_org_id,
FROM
source_db.Organization) parent_org
INNER JOIN
source_db.Organization org
ON
parent_org.parent_org_id = org.objectId
fields:
- dimension: parent_organization_id
type: string
sql: ${TABLE}.parent_org_id
- dimension: parent_organization_name
type: string
sql: ${TABLE}.parent_org_name
- dimension: organization_id
type: string
hidden: true
sql: ${TABLE}.org_id
- dimension: is_in_org_limit
type: yesno
hidden: true
sql: {% condition organization_limit %} ${organization_rank.rank} {% endcondition %}
- dimension: parent_organization_name_or_other
type: string
description: 'Use this to select the top N organizations, and group all other orgs into an "Other" group.'
sql: CASE WHEN ${is_in_org_limit} THEN ${parent_organization_name} ELSE 'Other' END
Contents
- parent_organization.sql
- parent_organization.sql
- parent_organization.view.lkml
- parent_organization.view.lookml