SQL
Saas cloud infrastructure
Tracks Flow
Tracks Flow model for saas cloud infrastructure.
source-preserved
Blocks
tracks_flow.sql · 45 lines
inferred
-- models/tracks_flow.sql
{{ config(materialized='view') }}
select a.event_id
, a.session_id
, a.track_sequence_number
, a.event
, a.looker_visitor_id
, b.event as event_2
, c.event as event_3
, d.event as event_4
, e.event as event_5
from {{ ref('track_facts') }} a
left join {{ ref('track_facts') }} b
on a.track_sequence_number + 1 = b.track_sequence_number
and a.session_id = b.session_id
left join {{ ref('track_facts') }} c
on a.track_sequence_number + 2 = c.track_sequence_number
and a.session_id = c.session_id
left join {{ ref('track_facts') }} d
on a.track_sequence_number + 3 = d.track_sequence_number
and a.session_id = d.session_id
left join {{ ref('track_facts') }} e
on a.track_sequence_number + 4 = e.track_sequence_number
and a.session_id = e.session_id
order by a.session_id, a.track_sequence_number
# models/schema.yml
version: 2
models:
- name: tracks_flow
columns:
- name: event_id
tests:
- unique
- not_null
- name: session_id
- name: track_sequence_number
- name: event
- name: user_id
- name: event_2
- name: event_3
- name: event_4
- name: event_5
Assumptions
- Each ${view.SQL_TABLE_NAME} was mapped to {{ ref('view') }}; confirm a dbt model exists for each referenced view.
- 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.
tracks_flow.sql · 23 lines
source-preserved
validation: not checked
select a.event_id
, a.session_id
, a.track_sequence_number
, a.event
, a.looker_visitor_id
, b.event as event_2
, c.event as event_3
, d.event as event_4
, e.event as event_5
from ${track_facts.SQL_TABLE_NAME} a
left join ${track_facts.SQL_TABLE_NAME} b
on a.track_sequence_number + 1 = b.track_sequence_number
and a.session_id = b.session_id
left join ${track_facts.SQL_TABLE_NAME} c
on a.track_sequence_number + 2 = c.track_sequence_number
and a.session_id = c.session_id
left join ${track_facts.SQL_TABLE_NAME} d
on a.track_sequence_number + 3 = d.track_sequence_number
and a.session_id = d.session_id
left join ${track_facts.SQL_TABLE_NAME} e
on a.track_sequence_number + 4 = e.track_sequence_number
and a.session_id = e.session_id
order by a.session_id, a.track_sequence_number
tracks_flow.view.lkml · 94 lines
inferred
view: tracks_flow {
derived_table: {
sql: select a.event_id
, a.session_id
, a.track_sequence_number
, a.event
, a.looker_visitor_id
, b.event as event_2
, c.event as event_3
, d.event as event_4
, e.event as event_5
from ${track_facts.SQL_TABLE_NAME} a
left join ${track_facts.SQL_TABLE_NAME} b
on a.track_sequence_number + 1 = b.track_sequence_number
and a.session_id = b.session_id
left join ${track_facts.SQL_TABLE_NAME} c
on a.track_sequence_number + 2 = c.track_sequence_number
and a.session_id = c.session_id
left join ${track_facts.SQL_TABLE_NAME} d
on a.track_sequence_number + 3 = d.track_sequence_number
and a.session_id = d.session_id
left join ${track_facts.SQL_TABLE_NAME} e
on a.track_sequence_number + 4 = e.track_sequence_number
and a.session_id = e.session_id
order by a.session_id, a.track_sequence_number ;;
}
dimension: event_id {
primary_key: yes
hidden: yes
sql: ${TABLE}.event_id ;;
}
dimension: session_id {
hidden: yes
sql: ${TABLE}.session_id ;;
}
dimension: track_sequence_number {
type: number
hidden: yes
sql: ${TABLE}.track_sequence_number ;;
}
dimension: event {
hidden: yes
sql: ${TABLE}.event ;;
}
dimension: user_id {
hidden: yes
sql: ${TABLE}.user_id ;;
}
dimension: event_2 {
label: "2nd Event"
sql: ${TABLE}.event_2 ;;
}
dimension: event_3 {
label: "3rd Event"
sql: ${TABLE}.event_3 ;;
}
dimension: event_4 {
label: "4th Event"
sql: ${TABLE}.event_4 ;;
}
dimension: event_5 {
label: "5th Event"
sql: ${TABLE}.event_5 ;;
}
measure: event_2_drop_off {
label: "2nd Event Remaining Count"
type: count
}
measure: event_3_drop_off {
label: "3rd Event Remaining Count"
type: count
}
measure: event_4_drop_off {
label: "4th Event Remaining Count"
type: count
}
measure: event_5_drop_off {
label: "5th Event Remaining Count"
type: count
}
}
tracks_flow.view.lookml · 67 lines
source-preserved
- view: tracks_flow
derived_table:
sql: select a.event_id
, a.session_id
, a.track_sequence_number
, a.event
, a.looker_visitor_id
, b.event as event_2
, c.event as event_3
, d.event as event_4
, e.event as event_5
from ${track_facts.SQL_TABLE_NAME} a
left join ${track_facts.SQL_TABLE_NAME} b
on a.track_sequence_number + 1 = b.track_sequence_number
and a.session_id = b.session_id
left join ${track_facts.SQL_TABLE_NAME} c
on a.track_sequence_number + 2 = c.track_sequence_number
and a.session_id = c.session_id
left join ${track_facts.SQL_TABLE_NAME} d
on a.track_sequence_number + 3 = d.track_sequence_number
and a.session_id = d.session_id
left join ${track_facts.SQL_TABLE_NAME} e
on a.track_sequence_number + 4 = e.track_sequence_number
and a.session_id = e.session_id
order by a.session_id, a.track_sequence_number
fields:
- dimension: event_id
primary_key: true
hidden: true
sql: ${TABLE}.event_id
- dimension: session_id
hidden: true
sql: ${TABLE}.session_id
- dimension: track_sequence_number
type: number
hidden: true
sql: ${TABLE}.track_sequence_number
- dimension: event
hidden: true
sql: ${TABLE}.event
- dimension: user_id
hidden: true
sql: ${TABLE}.user_id
- dimension: event_2
label: 2nd Event
sql: ${TABLE}.event_2
- dimension: event_3
label: 3rd Event
sql: ${TABLE}.event_3
- dimension: event_4
label: 4th Event
sql: ${TABLE}.event_4
- dimension: event_5
label: 5th Event
sql: ${TABLE}.event_5
- measure: event_2_drop_off
type: count
label: 2nd Event Remaining Count
- measure: event_3_drop_off
type: count
label: 3rd Event Remaining Count
- measure: event_4_drop_off
type: count
label: 4th Event Remaining Count
- measure: event_5_drop_off
type: count
label: 5th Event Remaining Count
Contents
- tracks_flow.sql
- tracks_flow.sql
- tracks_flow.view.lkml
- tracks_flow.view.lookml