SQL
Data analytics
Geozone Arrive Depart
Geozone Arrive Depart model for data analytics.
source-preserved
Blocks
geozone_arrive_depart.sql · 61 lines
inferred
-- models/geozone_arrive_depart.sql
{{ config(materialized='view') }}
SELECT arrive.deviceidint, arrive.usersvehicleid, groupidint, arrive.geozone, arrive.datename, avgarrivetime, avgarriveduringweek, arrivetime, avgdeparttime, avgdepartduringweek, departtime, totalunits, totalevent, arrive.dailysummaryid
FROM
(SELECT veh.usersvehicleid, g.deviceidint, geozone, datename, dailysummaryid, AVG(arrivetime)*1-EXTRACT(EPOCH FROM CONVERT_TIMEZONE('US/Eastern','GMT',datename))*1 AS AVGarrivetime,
CONVERT_TIMEZONE('GMT','US/Eastern',dateadd(s,AVG(arrivetime),'1970-01-01')) AS AVGarriveduringweek, AVG(arrivetime)*1 AS arrivetime, COUNT(distinct g.deviceidint)*1 AS totalunits, COUNT(*)*1 AS totalevent
FROM
(SELECT g.deviceidint, geozone, arrivetime, departtime, duration, midnight, EXTRACT(DAYOFYEAR FROM geodate) AS dayofy
FROM geozone_events g LEFT JOIN (SELECT l.deviceidint FROM DeviceList l WHERE l.groupid='vc_takehome_group_id' OR groupid='geozone_exclusion_group_id') tc ON g.deviceidint=tc.deviceidint WHERE tc.deviceidint IS NULL) g INNER JOIN
(SELECT accountid, deviceidint, daystart, dayend, datename, EXTRACT(DAYOFYEAR FROM datename) AS dayofy, dailysummaryid FROM daily_summary, account WHERE daily_summary.accountidint=account.accountidint and accountid='client_id') d ON g.deviceidint=d.deviceidint and
g.dayofy=d.dayofy
LEFT JOIN (SELECT deviceidint, usersvehicleid, deviceid FROM device d, vehicle_tbl v WHERE deviceid=name) veh ON d.deviceidint=veh.deviceidint
LEFT OUTER JOIN (SELECT deviceidint FROM DeviceList WHERE groupid='dual_placeholder2') r2 ON d.deviceidint=r2.deviceidint
WHERE
r2.deviceidint IS NULL and
daystart<>departtime and
dayend<>departtime and
(dayend-30600)>arrivetime and
(daystart+usage_threshold_miles0400)<arrivetime and
EXTRACT(DAYOFWEEK FROM datename) IN (1,2,3,4,usage_threshold_miles)
GROUP BY veh.usersvehicleid, g.deviceidint, datename, geozone, dailysummaryid) arrive INNER JOIN
(SELECT g.deviceidint, geozone, datename, dailysummaryid, AVG(departtime)*1-EXTRACT(EPOCH FROM CONVERT_TIMEZONE('US/Eastern','GMT',datename))*1 AS AVGdeparttime,
CONVERT_TIMEZONE('GMT','US/Eastern',dateadd(s,AVG(departtime),'1970-01-01')) AS AVGdepartduringweek, AVG(departtime)*1 AS departtime
FROM
(SELECT g.deviceidint, geozone, arrivetime, departtime, duration, midnight, EXTRACT(DAYOFYEAR FROM geodate) AS dayofy
FROM geozone_events g LEFT JOIN (SELECT l.deviceidint FROM DeviceList l WHERE l.groupid='vc_takehome_group_id' OR groupid='geozone_exclusion_group_id') tc ON g.deviceidint=tc.deviceidint WHERE tc.deviceidint IS NULL) g INNER JOIN
(SELECT accountid, deviceidint, daystart, dayend, datename, EXTRACT(DAYOFYEAR FROM datename) AS dayofy, dailysummaryid FROM daily_summary, account WHERE daily_summary.accountidint=account.accountidint and accountid='client_id') d ON g.deviceidint=d.deviceidint and
g.dayofy=d.dayofy
LEFT OUTER JOIN (SELECT deviceidint FROM DeviceList WHERE groupid='dual_placeholder2') r2 ON d.deviceidint=r2.deviceidint
WHERE
r2.deviceidint IS NULL and
daystart<>departtime and
dayend<>departtime and
(dayend-usage_threshold_miles4000)>departtime and
(daystart+21600)<departtime and
EXTRACT(DAYOFWEEK FROM datename) IN (1,2,3,4,usage_threshold_miles)
GROUP BY g.deviceidint, datename, geozone, dailysummaryid) depart ON depart.deviceidint=arrive.deviceidint and depart.geozone=arrive.geozone and depart.dailysummaryid=arrive.dailysummaryid
LEFT JOIN (SELECT l.deviceidint, l.groupidint FROM DeviceList l WHERE groupid LIKE 'rc_group_id-%' and groupid NOT LIKE 'rc_group_id-773%') rc ON rc.deviceidint=arrive.deviceidint
# models/schema.yml
version: 2
models:
- name: geozone_arrive_depart
columns:
- name: usersvehicleid
description: "Unit Number From Company Platform"
- name: deviceidint
- name: groupidint
- name: geozone
description: "Geozone ID in Company Platform"
- name: avgarrivetime
- name: arrivetime
- name: avgdeparttime
- name: departtime
- name: totalunits
- name: totalevent
- name: dailysummaryid
- name: averagetime
- name: loadedhours
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.
geozone_arrive_depart.sql · 36 lines
source-preserved
validation: parses
SELECT arrive.deviceidint, arrive.usersvehicleid, groupidint, arrive.geozone, arrive.datename, avgarrivetime, avgarriveduringweek, arrivetime, avgdeparttime, avgdepartduringweek, departtime, totalunits, totalevent, arrive.dailysummaryid
FROM
(SELECT veh.usersvehicleid, g.deviceidint, geozone, datename, dailysummaryid, AVG(arrivetime)*1-EXTRACT(EPOCH FROM CONVERT_TIMEZONE('US/Eastern','GMT',datename))*1 AS AVGarrivetime,
CONVERT_TIMEZONE('GMT','US/Eastern',dateadd(s,AVG(arrivetime),'1970-01-01')) AS AVGarriveduringweek, AVG(arrivetime)*1 AS arrivetime, COUNT(distinct g.deviceidint)*1 AS totalunits, COUNT(*)*1 AS totalevent
FROM
(SELECT g.deviceidint, geozone, arrivetime, departtime, duration, midnight, EXTRACT(DAYOFYEAR FROM geodate) AS dayofy
FROM geozone_events g LEFT JOIN (SELECT l.deviceidint FROM DeviceList l WHERE l.groupid='vc_takehome_group_id' OR groupid='geozone_exclusion_group_id') tc ON g.deviceidint=tc.deviceidint WHERE tc.deviceidint IS NULL) g INNER JOIN
(SELECT accountid, deviceidint, daystart, dayend, datename, EXTRACT(DAYOFYEAR FROM datename) AS dayofy, dailysummaryid FROM daily_summary, account WHERE daily_summary.accountidint=account.accountidint and accountid='client_id') d ON g.deviceidint=d.deviceidint and
g.dayofy=d.dayofy
LEFT JOIN (SELECT deviceidint, usersvehicleid, deviceid FROM device d, vehicle_tbl v WHERE deviceid=name) veh ON d.deviceidint=veh.deviceidint
LEFT OUTER JOIN (SELECT deviceidint FROM DeviceList WHERE groupid='dual_placeholder2') r2 ON d.deviceidint=r2.deviceidint
WHERE
r2.deviceidint IS NULL and
daystart<>departtime and
dayend<>departtime and
(dayend-30600)>arrivetime and
(daystart+usage_threshold_miles0400)<arrivetime and
EXTRACT(DAYOFWEEK FROM datename) IN (1,2,3,4,usage_threshold_miles)
GROUP BY veh.usersvehicleid, g.deviceidint, datename, geozone, dailysummaryid) arrive INNER JOIN
(SELECT g.deviceidint, geozone, datename, dailysummaryid, AVG(departtime)*1-EXTRACT(EPOCH FROM CONVERT_TIMEZONE('US/Eastern','GMT',datename))*1 AS AVGdeparttime,
CONVERT_TIMEZONE('GMT','US/Eastern',dateadd(s,AVG(departtime),'1970-01-01')) AS AVGdepartduringweek, AVG(departtime)*1 AS departtime
FROM
(SELECT g.deviceidint, geozone, arrivetime, departtime, duration, midnight, EXTRACT(DAYOFYEAR FROM geodate) AS dayofy
FROM geozone_events g LEFT JOIN (SELECT l.deviceidint FROM DeviceList l WHERE l.groupid='vc_takehome_group_id' OR groupid='geozone_exclusion_group_id') tc ON g.deviceidint=tc.deviceidint WHERE tc.deviceidint IS NULL) g INNER JOIN
(SELECT accountid, deviceidint, daystart, dayend, datename, EXTRACT(DAYOFYEAR FROM datename) AS dayofy, dailysummaryid FROM daily_summary, account WHERE daily_summary.accountidint=account.accountidint and accountid='client_id') d ON g.deviceidint=d.deviceidint and
g.dayofy=d.dayofy
LEFT OUTER JOIN (SELECT deviceidint FROM DeviceList WHERE groupid='dual_placeholder2') r2 ON d.deviceidint=r2.deviceidint
WHERE
r2.deviceidint IS NULL and
daystart<>departtime and
dayend<>departtime and
(dayend-usage_threshold_miles4000)>departtime and
(daystart+21600)<departtime and
EXTRACT(DAYOFWEEK FROM datename) IN (1,2,3,4,usage_threshold_miles)
GROUP BY g.deviceidint, datename, geozone, dailysummaryid) depart ON depart.deviceidint=arrive.deviceidint and depart.geozone=arrive.geozone and depart.dailysummaryid=arrive.dailysummaryid
LEFT JOIN (SELECT l.deviceidint, l.groupidint FROM DeviceList l WHERE groupid LIKE 'rc_group_id-%' and groupid NOT LIKE 'rc_group_id-773%') rc ON rc.deviceidint=arrive.deviceidint
geozone_arrive_depart.view.lkml · 266 lines
inferred
view: geozone_arrive_depart {
derived_table: {
sql: SELECT arrive.deviceidint, arrive.usersvehicleid, groupidint, arrive.geozone, arrive.datename, avgarrivetime, avgarriveduringweek, arrivetime, avgdeparttime, avgdepartduringweek, departtime, totalunits, totalevent, arrive.dailysummaryid
FROM
(SELECT veh.usersvehicleid, g.deviceidint, geozone, datename, dailysummaryid, AVG(arrivetime)*1-EXTRACT(EPOCH FROM CONVERT_TIMEZONE('US/Eastern','GMT',datename))*1 AS AVGarrivetime,
CONVERT_TIMEZONE('GMT','US/Eastern',dateadd(s,AVG(arrivetime),'1970-01-01')) AS AVGarriveduringweek, AVG(arrivetime)*1 AS arrivetime, COUNT(distinct g.deviceidint)*1 AS totalunits, COUNT(*)*1 AS totalevent
FROM
(SELECT g.deviceidint, geozone, arrivetime, departtime, duration, midnight, EXTRACT(DAYOFYEAR FROM geodate) AS dayofy
FROM geozone_events g LEFT JOIN (SELECT l.deviceidint FROM DeviceList l WHERE l.groupid='vc_takehome_group_id' OR groupid='geozone_exclusion_group_id') tc ON g.deviceidint=tc.deviceidint WHERE tc.deviceidint IS NULL) g INNER JOIN
(SELECT accountid, deviceidint, daystart, dayend, datename, EXTRACT(DAYOFYEAR FROM datename) AS dayofy, dailysummaryid FROM daily_summary, account WHERE daily_summary.accountidint=account.accountidint and accountid='client_id') d ON g.deviceidint=d.deviceidint and
g.dayofy=d.dayofy
LEFT JOIN (SELECT deviceidint, usersvehicleid, deviceid FROM device d, vehicle_tbl v WHERE deviceid=name) veh ON d.deviceidint=veh.deviceidint
LEFT OUTER JOIN (SELECT deviceidint FROM DeviceList WHERE groupid='dual_placeholder2') r2 ON d.deviceidint=r2.deviceidint
WHERE
r2.deviceidint IS NULL and
daystart<>departtime and
dayend<>departtime and
(dayend-30600)>arrivetime and
(daystart+usage_threshold_miles0400)<arrivetime and
EXTRACT(DAYOFWEEK FROM datename) IN (1,2,3,4,usage_threshold_miles)
GROUP BY veh.usersvehicleid, g.deviceidint, datename, geozone, dailysummaryid) arrive INNER JOIN
(SELECT g.deviceidint, geozone, datename, dailysummaryid, AVG(departtime)*1-EXTRACT(EPOCH FROM CONVERT_TIMEZONE('US/Eastern','GMT',datename))*1 AS AVGdeparttime,
CONVERT_TIMEZONE('GMT','US/Eastern',dateadd(s,AVG(departtime),'1970-01-01')) AS AVGdepartduringweek, AVG(departtime)*1 AS departtime
FROM
(SELECT g.deviceidint, geozone, arrivetime, departtime, duration, midnight, EXTRACT(DAYOFYEAR FROM geodate) AS dayofy
FROM geozone_events g LEFT JOIN (SELECT l.deviceidint FROM DeviceList l WHERE l.groupid='vc_takehome_group_id' OR groupid='geozone_exclusion_group_id') tc ON g.deviceidint=tc.deviceidint WHERE tc.deviceidint IS NULL) g INNER JOIN
(SELECT accountid, deviceidint, daystart, dayend, datename, EXTRACT(DAYOFYEAR FROM datename) AS dayofy, dailysummaryid FROM daily_summary, account WHERE daily_summary.accountidint=account.accountidint and accountid='client_id') d ON g.deviceidint=d.deviceidint and
g.dayofy=d.dayofy
LEFT OUTER JOIN (SELECT deviceidint FROM DeviceList WHERE groupid='dual_placeholder2') r2 ON d.deviceidint=r2.deviceidint
WHERE
r2.deviceidint IS NULL and
daystart<>departtime and
dayend<>departtime and
(dayend-usage_threshold_miles4000)>departtime and
(daystart+21600)<departtime and
EXTRACT(DAYOFWEEK FROM datename) IN (1,2,3,4,usage_threshold_miles)
GROUP BY g.deviceidint, datename, geozone, dailysummaryid) depart ON depart.deviceidint=arrive.deviceidint and depart.geozone=arrive.geozone and depart.dailysummaryid=arrive.dailysummaryid
LEFT JOIN (SELECT l.deviceidint, l.groupidint FROM DeviceList l WHERE groupid LIKE 'rc_group_id-%' and groupid NOT LIKE 'rc_group_id-773%') rc ON rc.deviceidint=arrive.deviceidint ;;
}
dimension: usersvehicleid {
label: "Unit Number"
description: "Unit Number From Company Platform"
sql: ${TABLE}.usersvehicleid ;;
}
dimension: deviceidint {
type: number
hidden: yes
sql: ${TABLE}.deviceidint ;;
}
dimension: groupidint {
type: number
hidden: yes
sql: ${TABLE}.groupidint ;;
}
dimension: geozone {
label: "Geozone ID"
description: "Geozone ID in Company Platform"
drill_fields: [usersvehicleid, geozone, datename_week, avghours, averagetimingdepart, averagetimingarrive]
sql: ${TABLE}.geozone ;;
}
dimension: avgarrivetime {
type: number
hidden: yes
value_format: "#.00"
sql: ${TABLE}.avgarrivetime*1 ;;
}
dimension: arrivetime {
type: number
hidden: yes
value_format: "#.00"
sql: ${TABLE}.arrivetime*1 ;;
}
dimension: avgdeparttime {
type: number
hidden: yes
value_format: "#.00"
sql: ${TABLE}.avgdeparttime*1 ;;
}
dimension: departtime {
type: number
hidden: yes
value_format: "#.00"
sql: ${TABLE}.departtime*1 ;;
}
dimension: totalunits {
type: number
hidden: yes
value_format: "#.00"
sql: ${TABLE}.totalunit*1 ;;
}
dimension: totalevent {
type: number
hidden: yes
value_format: "#.00"
sql: ${TABLE}.totalevent*1 ;;
}
dimension: dailysummaryid {
type: number
hidden: yes
sql: ${TABLE}.dailysummaryid ;;
}
dimension: averagetime {
type: number
hidden: yes
value_format: "#.00"
sql: (${arrivetime}-${departtime})*1/3600.0 ;;
}
dimension: loadedhours {
type: number
hidden: yes
value_format: "#.00"
sql: ${averagetime}*(${totalevent}*1) ;;
}
dimension_group: datename {
label: "Day/Week/Month of the Year"
description: "Select this field to aggregate data over this timeframe"
type: time
timeframes: [time, date, week, month]
convert_tz: no
sql: ${TABLE}.datename ;;
}
dimension_group: avgarriveduringweek {
label: "Average Arrival By Day"
type: time
timeframes: [time]
convert_tz: no
sql: ${TABLE}.avgarriveduringweek ;;
}
dimension_group: avgdepartduringweek {
label: "Average Departure By Day"
type: time
timeframes: [time]
convert_tz: no
sql: ${TABLE}.avgdepartduringweek ;;
}
measure: count {
type: count
drill_fields: [detail*]
}
measure: totaldepart {
type: sum
hidden: yes
sql: ${totalevent} ;;
}
measure: totalunit {
type: sum
hidden: yes
sql: ${totalunits} ;;
}
measure: totalhours {
type: sum
hidden: yes
value_format: "#.00"
sql: ${loadedhours} ;;
}
measure: avghours {
label: "Average Depart-Arrival Time"
description: "Average (First Departure - Last Arrival)"
type: number
value_format: "#.00"
drill_fields: [usersvehicleid, geozone, datename_week, avghours, averagetimingdepart, averagetimingarrive]
sql: ROUND(${totalhours}/(${totaldepart}*1),2) ;;
}
measure: avgtimeofdepartepoch {
type: avg
hidden: yes
sql: ${avgdeparttime} ;;
}
measure: departhours {
type: number
hidden: yes
sql: (${avgtimeofdepartepoch})/3600 ;;
}
measure: departminutes {
type: number
hidden: yes
value_format: "00"
sql: (${avgtimeofdepartepoch}-(${departhours}*3600))/60 ;;
}
measure: sort_depart {
label: "Average Departure Time ####"
description: "Average Departure Time in #### Format"
type: number
drill_fields: [usersvehicleid, geozone, datename_week, avghours, averagetimingdepart, averagetimingarrive]
sql: (${departhours}*100)+(${departminutes}) ;;
}
measure: averagetimingdepart {
label: "Average Departure Time ##:##"
description: "Average Departure Time in ##:## Format"
drill_fields: [usersvehicleid, geozone, datename_week, avghours, averagetimingdepart, averagetimingarrive]
sql: CONCAT(CONCAT(CAST(${departhours} AS VARCHAR),CAST(':' AS VARCHAR)),CAST(${departminutes} AS VARCHAR)) ;;
}
measure: avgtimeofarriveepoch {
type: avg
hidden: yes
sql: ${avgarrivetime} ;;
}
measure: arrivehours {
type: number
hidden: yes
sql: (${avgtimeofarriveepoch})/3600 ;;
}
measure: arriveminutes {
type: number
hidden: yes
value_format: "00"
sql: (${avgtimeofarriveepoch}-(${arrivehours}*3600))/60 ;;
}
measure: sort_arrive {
label: "Average Arrival Time ####"
description: "Average Arrival Time in #### Format"
type: number
drill_fields: [usersvehicleid, geozone, datename_week, avghours, averagetimingdepart, averagetimingarrive]
sql: (${arrivehours}*100)+(${arriveminutes}) ;;
}
measure: averagetimingarrive {
label: "Average Arrival Time ##:##"
description: "Average Arrival Time in ##:## Format"
type: string
drill_fields: [usersvehicleid, geozone, datename_week, avghours, averagetimingdepart, averagetimingarrive]
sql: CONCAT(CONCAT(CAST(${arrivehours} AS VARCHAR),CAST(':' AS VARCHAR)),CONCAT(CASE WHEN LENGTH(CAST(${arriveminutes} AS VARCHAR))=1 THEN '0' ELSE '' END,CAST(${arriveminutes} AS VARCHAR))) ;;
}
measure: arrive_time_correct {
type: number
value_format: "[h]:mm:ss"
sql: (1.00 * ${arrivehours} + (1.00 * ${arriveminutes})/60)/24 ;;
}
measure: depart_time_correct {
type: number
value_format: "[h]:mm:ss"
sql: (1.00 * ${departhours} + (1.00 * ${departminutes})/60)/24 ;;
}
}
geozone_arrive_depart.view.lookml · 229 lines
source-preserved
- view: geozone_arrive_depart
derived_table:
sql: SELECT arrive.deviceidint, arrive.usersvehicleid, groupidint, arrive.geozone, arrive.datename, avgarrivetime, avgarriveduringweek, arrivetime, avgdeparttime, avgdepartduringweek, departtime, totalunits, totalevent, arrive.dailysummaryid
FROM
(SELECT veh.usersvehicleid, g.deviceidint, geozone, datename, dailysummaryid, AVG(arrivetime)*1-EXTRACT(EPOCH FROM CONVERT_TIMEZONE('US/Eastern','GMT',datename))*1 AS AVGarrivetime,
CONVERT_TIMEZONE('GMT','US/Eastern',dateadd(s,AVG(arrivetime),'1970-01-01')) AS AVGarriveduringweek, AVG(arrivetime)*1 AS arrivetime, COUNT(distinct g.deviceidint)*1 AS totalunits, COUNT(*)*1 AS totalevent
FROM
(SELECT g.deviceidint, geozone, arrivetime, departtime, duration, midnight, EXTRACT(DAYOFYEAR FROM geodate) AS dayofy
FROM geozone_events g LEFT JOIN (SELECT l.deviceidint FROM DeviceList l WHERE l.groupid='vc_takehome_group_id' OR groupid='geozone_exclusion_group_id') tc ON g.deviceidint=tc.deviceidint WHERE tc.deviceidint IS NULL) g INNER JOIN
(SELECT accountid, deviceidint, daystart, dayend, datename, EXTRACT(DAYOFYEAR FROM datename) AS dayofy, dailysummaryid FROM daily_summary, account WHERE daily_summary.accountidint=account.accountidint and accountid='client_id') d ON g.deviceidint=d.deviceidint and
g.dayofy=d.dayofy
LEFT JOIN (SELECT deviceidint, usersvehicleid, deviceid FROM device d, vehicle_tbl v WHERE deviceid=name) veh ON d.deviceidint=veh.deviceidint
LEFT OUTER JOIN (SELECT deviceidint FROM DeviceList WHERE groupid='dual_placeholder2') r2 ON d.deviceidint=r2.deviceidint
WHERE
r2.deviceidint IS NULL and
daystart<>departtime and
dayend<>departtime and
(dayend-30600)>arrivetime and
(daystart+usage_threshold_miles0400)<arrivetime and
EXTRACT(DAYOFWEEK FROM datename) IN (1,2,3,4,usage_threshold_miles)
GROUP BY veh.usersvehicleid, g.deviceidint, datename, geozone, dailysummaryid) arrive INNER JOIN
(SELECT g.deviceidint, geozone, datename, dailysummaryid, AVG(departtime)*1-EXTRACT(EPOCH FROM CONVERT_TIMEZONE('US/Eastern','GMT',datename))*1 AS AVGdeparttime,
CONVERT_TIMEZONE('GMT','US/Eastern',dateadd(s,AVG(departtime),'1970-01-01')) AS AVGdepartduringweek, AVG(departtime)*1 AS departtime
FROM
(SELECT g.deviceidint, geozone, arrivetime, departtime, duration, midnight, EXTRACT(DAYOFYEAR FROM geodate) AS dayofy
FROM geozone_events g LEFT JOIN (SELECT l.deviceidint FROM DeviceList l WHERE l.groupid='vc_takehome_group_id' OR groupid='geozone_exclusion_group_id') tc ON g.deviceidint=tc.deviceidint WHERE tc.deviceidint IS NULL) g INNER JOIN
(SELECT accountid, deviceidint, daystart, dayend, datename, EXTRACT(DAYOFYEAR FROM datename) AS dayofy, dailysummaryid FROM daily_summary, account WHERE daily_summary.accountidint=account.accountidint and accountid='client_id') d ON g.deviceidint=d.deviceidint and
g.dayofy=d.dayofy
LEFT OUTER JOIN (SELECT deviceidint FROM DeviceList WHERE groupid='dual_placeholder2') r2 ON d.deviceidint=r2.deviceidint
WHERE
r2.deviceidint IS NULL and
daystart<>departtime and
dayend<>departtime and
(dayend-usage_threshold_miles4000)>departtime and
(daystart+21600)<departtime and
EXTRACT(DAYOFWEEK FROM datename) IN (1,2,3,4,usage_threshold_miles)
GROUP BY g.deviceidint, datename, geozone, dailysummaryid) depart ON depart.deviceidint=arrive.deviceidint and depart.geozone=arrive.geozone and depart.dailysummaryid=arrive.dailysummaryid
LEFT JOIN (SELECT l.deviceidint, l.groupidint FROM DeviceList l WHERE groupid LIKE 'rc_group_id-%' and groupid NOT LIKE 'rc_group_id-773%') rc ON rc.deviceidint=arrive.deviceidint
fields:
- dimension: usersvehicleid
label: Unit Number
description: Unit Number From Company Platform
sql: ${TABLE}.usersvehicleid
- dimension: deviceidint
type: number
hidden: true
sql: ${TABLE}.deviceidint
- dimension: groupidint
type: number
hidden: true
sql: ${TABLE}.groupidint
- dimension: geozone
label: Geozone ID
description: Geozone ID in Company Platform
drill_fields:
- usersvehicleid
- geozone
- datename_week
- avghours
- averagetimingdepart
- averagetimingarrive
sql: ${TABLE}.geozone
- dimension: avgarrivetime
type: number
hidden: true
value_format: '#.00'
sql: ${TABLE}.avgarrivetime*1
- dimension: arrivetime
type: number
hidden: true
value_format: '#.00'
sql: ${TABLE}.arrivetime*1
- dimension: avgdeparttime
type: number
hidden: true
value_format: '#.00'
sql: ${TABLE}.avgdeparttime*1
- dimension: departtime
type: number
hidden: true
value_format: '#.00'
sql: ${TABLE}.departtime*1
- dimension: totalunits
type: number
hidden: true
value_format: '#.00'
sql: ${TABLE}.totalunit*1
- dimension: totalevent
type: number
hidden: true
value_format: '#.00'
sql: ${TABLE}.totalevent*1
- dimension: dailysummaryid
type: number
hidden: true
sql: ${TABLE}.dailysummaryid
- dimension: averagetime
type: number
hidden: true
value_format: '#.00'
sql: (${arrivetime}-${departtime})*1/3600.0
- dimension: loadedhours
type: number
hidden: true
value_format: '#.00'
sql: ${averagetime}*(${totalevent}*1)
- dimension_group: datename
type: time
timeframes:
- time
- date
- week
- month
convert_tz: false
sql: ${TABLE}.datename
- dimension_group: avgarriveduringweek
type: time
timeframes:
- time
convert_tz: false
sql: ${TABLE}.avgarriveduringweek
- dimension_group: avgdepartduringweek
type: time
timeframes:
- time
convert_tz: false
sql: ${TABLE}.avgdepartduringweek
- measure: count
type: count
drill_fields:
- detail*
- measure: totaldepart
type: sum
sql: ${totalevent}
- measure: totalunit
type: sum
sql: ${totalunits}
- measure: totalhours
type: sum
value_format: '#.00'
sql: ${loadedhours}
- measure: avghours
type: number
label: Average Depart-Arrival Time
description: Average (First Departure - Last Arrival)
value_format: '#.00'
drill_fields:
- usersvehicleid
- geozone
- datename_week
- avghours
- averagetimingdepart
- averagetimingarrive
sql: ROUND(${totalhours}/(${totaldepart}*1),2)
- measure: avgtimeofdepartepoch
type: avg
sql: ${avgdeparttime}
- measure: departhours
type: number
sql: (${avgtimeofdepartepoch})/3600
- measure: departminutes
type: number
value_format: 00
sql: (${avgtimeofdepartepoch}-(${departhours}*3600))/60
- measure: sort_depart
type: number
label: 'Average Departure Time ####'
description: 'Average Departure Time in #### Format'
drill_fields:
- usersvehicleid
- geozone
- datename_week
- avghours
- averagetimingdepart
- averagetimingarrive
sql: (${departhours}*100)+(${departminutes})
- measure: averagetimingdepart
label: 'Average Departure Time ##:##'
description: 'Average Departure Time in ##:## Format'
drill_fields:
- usersvehicleid
- geozone
- datename_week
- avghours
- averagetimingdepart
- averagetimingarrive
sql: CONCAT(CONCAT(CAST(${departhours} AS VARCHAR),CAST(':' AS VARCHAR)),CAST(${departminutes} AS VARCHAR))
- measure: avgtimeofarriveepoch
type: avg
sql: ${avgarrivetime}
- measure: arrivehours
type: number
sql: (${avgtimeofarriveepoch})/3600
- measure: arriveminutes
type: number
value_format: 00
sql: (${avgtimeofarriveepoch}-(${arrivehours}*3600))/60
- measure: sort_arrive
type: number
label: 'Average Arrival Time ####'
description: 'Average Arrival Time in #### Format'
drill_fields:
- usersvehicleid
- geozone
- datename_week
- avghours
- averagetimingdepart
- averagetimingarrive
sql: (${arrivehours}*100)+(${arriveminutes})
- measure: averagetimingarrive
type: string
label: 'Average Arrival Time ##:##'
description: 'Average Arrival Time in ##:## Format'
drill_fields:
- usersvehicleid
- geozone
- datename_week
- avghours
- averagetimingdepart
- averagetimingarrive
sql: CONCAT(CONCAT(CAST(${arrivehours} AS VARCHAR),CAST(':' AS VARCHAR)),CONCAT(CASE WHEN LENGTH(CAST(${arriveminutes} AS VARCHAR))=1 THEN '0' ELSE '' END,CAST(${arriveminutes} AS VARCHAR)))
- measure: arrive_time_correct
type: number
value_format: '[h]:mm:ss'
sql: (1.00 * ${arrivehours} + (1.00 * ${arriveminutes})/60)/24
- measure: depart_time_correct
type: number
value_format: '[h]:mm:ss'
sql: (1.00 * ${departhours} + (1.00 * ${departminutes})/60)/24
Contents
- geozone_arrive_depart.sql
- geozone_arrive_depart.sql
- geozone_arrive_depart.view.lkml
- geozone_arrive_depart.view.lookml