SQL
Data analytics
Daily Vehicle Summary
Daily Vehicle Summary model for data analytics.
source-preserved
Blocks
daily_vehicle_summary.sql · 82 lines
inferred
-- models/daily_vehicle_summary.sql
{{ config(materialized='view') }}
SELECT s.dailysummaryid, s.deviceidint, accountidint, displayname, daystart,dayend,timezone,datename,idletotal
,fueltotal,enginetotal,odometertotal,(CASE WHEN ptototal>idletotal THEN boomtotal ELSE ptototal END) AS ptototal,boomtotal,totalevents,accelerationtotal,brakingtotal
,corneringtotal,faulttotal,speedingtotal,maxspeed,lowbatterytotal,enginestarttotal,enginestoptotal,devicecode,firstcomm,accountid, EXTRACT(DAYOFWEEK FROM datename) AS dayname
FROM
daily_summary s
LEFT JOIN delta_summary d ON s.dailysummaryid=d.dailysummaryid
LEFT JOIN event_summary e ON e.dailysummaryid=s.dailysummaryid
LEFT JOIN (SELECT d.deviceidint, d.displayname, d.devicecode, d.accountid
FROM device d) c ON c.deviceidint=s.deviceidint
INNER JOIN (SELECT es.deviceidint, MIN(da.daystart) AS firstcomm FROM daily_summary da, event_summary es
WHERE es.dailysummaryid=da.dailysummaryid and es.totalevents>0 GROUP BY es.deviceidint) ev ON ev.deviceidint=s.deviceidint
INNER JOIN (SELECT l.deviceidint, l.groupid FROM devicelist l WHERE l.groupid=l.accountid) l ON l.deviceidint=s.deviceidint
FULL OUTER JOIN (SELECT l.deviceidint, l.groupid FROM devicelist l WHERE l.groupid='dual_placeholder1') dual ON dual.deviceidint=s.deviceidint
where dual.deviceidint IS NULL
# models/schema.yml
version: 2
models:
- name: daily_vehicle_summary
columns:
- name: dailysummaryid
- name: deviceidint
- name: accountidint
- name: daystart
- name: dayend
- name: timezone
- name: idletotal
- name: idlehoursadjust
- name: idlehourscalc
description: "Unit Total Idle Hours By Day"
- name: idlehoursnoboom
description: "Unit Specific Idle Hours Without Boom By Day"
- name: idlehoursnopto
description: "Unit Specific Idle Hours Without PTO By Day"
- name: fueltotal
description: "Unit Specific Fuel Consumption By Day"
- name: enginetotal
description: "Unit Specific Engine Hours By Day"
- name: enginehoursnoidle
description: "Unit Specific Driving Hours By Day"
- name: driving
description: "Unit Driving Hours By Day"
- name: odometertotal
description: "Unit Specific Mileage By Day"
- name: daily_fleet_used
description: "Unit Specific Usage By Day - Company Defines Usage As a Day Exceeding usage_threshold_miles Miles Driven"
- name: ptototal
description: "Unit Specific PTO Hours By Day"
- name: ptonoboomtotal
description: "Unit Specific PTO Hours Without Boom Hours By Day"
- name: boomtotal
description: "Unit Specific Boom Hours By Day"
- name: totalevents
- name: accelerationtotal
description: "Unit Specific Acceleration Events By Day - Company default settings is an event when driver accelerates greater than acceleration_event_threshold"
- name: brakingtotal
description: "Unit Specific Braking Events By Day - Company default settings is an event when driver accelerates greater than braking_event_threshold"
- name: corneringtotal
description: "Unit Specific Cornering Events By Day - Company default settings is an event when the vehicle\u2019s centrifugal g-force is over the specific G-force threshold of 7usage_threshold_miles0mg for .1 seconds"
- name: faulttotal
description: "Unit Specific Fault Code Events By Day"
- name: speedingtotal
description: "Unit Specific Speeding Events By Day - Company default setting is an event exceeding 77mph for usage_threshold_miles seconds. This event turns off when the vehicle goes below 7usage_threshold_miles mph for usage_threshold_miles seconds"
- name: maxspeed
description: "Maximum Speed By Vehicle By Day"
- name: lowbatterytotal
description: "Unit Specific Low Battery Events By Day"
- name: enginestarttotal
- name: enginestoptotal
description: "Unit Specific Engine Stops By Day"
- name: usersvehicleid
description: "Unit Number From Company Platform"
- name: devicecode
- name: accountid
- name: firstcomm
- name: dayname
- name: gooddate
- name: weekend
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.
daily_vehicle_summary.sql · 14 lines
source-preserved
validation: parses
SELECT s.dailysummaryid, s.deviceidint, accountidint, displayname, daystart,dayend,timezone,datename,idletotal
,fueltotal,enginetotal,odometertotal,(CASE WHEN ptototal>idletotal THEN boomtotal ELSE ptototal END) AS ptototal,boomtotal,totalevents,accelerationtotal,brakingtotal
,corneringtotal,faulttotal,speedingtotal,maxspeed,lowbatterytotal,enginestarttotal,enginestoptotal,devicecode,firstcomm,accountid, EXTRACT(DAYOFWEEK FROM datename) AS dayname
FROM
daily_summary s
LEFT JOIN delta_summary d ON s.dailysummaryid=d.dailysummaryid
LEFT JOIN event_summary e ON e.dailysummaryid=s.dailysummaryid
LEFT JOIN (SELECT d.deviceidint, d.displayname, d.devicecode, d.accountid
FROM device d) c ON c.deviceidint=s.deviceidint
INNER JOIN (SELECT es.deviceidint, MIN(da.daystart) AS firstcomm FROM daily_summary da, event_summary es
WHERE es.dailysummaryid=da.dailysummaryid and es.totalevents>0 GROUP BY es.deviceidint) ev ON ev.deviceidint=s.deviceidint
INNER JOIN (SELECT l.deviceidint, l.groupid FROM devicelist l WHERE l.groupid=l.accountid) l ON l.deviceidint=s.deviceidint
FULL OUTER JOIN (SELECT l.deviceidint, l.groupid FROM devicelist l WHERE l.groupid='dual_placeholder1') dual ON dual.deviceidint=s.deviceidint
where dual.deviceidint IS NULL
daily_vehicle_summary.view.lkml · 518 lines
inferred
view: daily_vehicle_summary {
derived_table: {
sql: SELECT s.dailysummaryid, s.deviceidint, accountidint, displayname, daystart,dayend,timezone,datename,idletotal
,fueltotal,enginetotal,odometertotal,(CASE WHEN ptototal>idletotal THEN boomtotal ELSE ptototal END) AS ptototal,boomtotal,totalevents,accelerationtotal,brakingtotal
,corneringtotal,faulttotal,speedingtotal,maxspeed,lowbatterytotal,enginestarttotal,enginestoptotal,devicecode,firstcomm,accountid, EXTRACT(DAYOFWEEK FROM datename) AS dayname
FROM
daily_summary s
LEFT JOIN delta_summary d ON s.dailysummaryid=d.dailysummaryid
LEFT JOIN event_summary e ON e.dailysummaryid=s.dailysummaryid
LEFT JOIN (SELECT d.deviceidint, d.displayname, d.devicecode, d.accountid
FROM device d) c ON c.deviceidint=s.deviceidint
INNER JOIN (SELECT es.deviceidint, MIN(da.daystart) AS firstcomm FROM daily_summary da, event_summary es
WHERE es.dailysummaryid=da.dailysummaryid and es.totalevents>0 GROUP BY es.deviceidint) ev ON ev.deviceidint=s.deviceidint
INNER JOIN (SELECT l.deviceidint, l.groupid FROM devicelist l WHERE l.groupid=l.accountid) l ON l.deviceidint=s.deviceidint
FULL OUTER JOIN (SELECT l.deviceidint, l.groupid FROM devicelist l WHERE l.groupid='dual_placeholder1') dual ON dual.deviceidint=s.deviceidint
where dual.deviceidint IS NULL ;;
}
dimension: dailysummaryid {
type: number
hidden: yes
sql: ${TABLE}.dailysummaryid ;;
}
dimension: deviceidint {
type: number
hidden: yes
sql: ${TABLE}.deviceidint ;;
}
dimension: accountidint {
type: number
hidden: yes
sql: ${TABLE}.accountidint ;;
}
dimension: daystart {
type: number
hidden: yes
sql: ${TABLE}.daystart ;;
}
dimension: dayend {
type: number
hidden: yes
sql: ${TABLE}.dayend ;;
}
dimension: timezone {
hidden: yes
sql: ${TABLE}.timezone ;;
}
dimension: idletotal {
type: number
hidden: yes
sql: ${TABLE}.idletotal ;;
}
dimension: idlehoursadjust {
type: number
hidden: yes
sql: CASE
WHEN ${devicecode}='atrack' THEN ${idletotal}/60.0
ELSE ${idletotal} END ;;
}
dimension: idlehourscalc {
label: "Unit Idle Time"
description: "Unit Total Idle Hours By Day"
type: number
sql: CASE
WHEN ${idlehoursadjust}>${enginetotal} THEN ${enginetotal}
ELSE ${idlehoursadjust} END ;;
}
dimension: idlehoursnoboom {
label: "Unit Idle Without Boom"
description: "Unit Specific Idle Hours Without Boom By Day"
type: number
sql: ${idlehourscalc}-${boomtotal} ;;
}
dimension: idlehoursnopto {
label: "Unit Idle Without PTO"
description: "Unit Specific Idle Hours Without PTO By Day"
type: number
sql: ${idlehourscalc}-${ptototal} ;;
}
dimension: fueltotal {
label: "Unit Fuel Gallons"
description: "Unit Specific Fuel Consumption By Day"
type: number
sql: ${TABLE}.fueltotal*0.264172 ;;
}
dimension: enginetotal {
label: "Unit Engine Run Time"
description: "Unit Specific Engine Hours By Day"
type: number
sql: ${TABLE}.enginetotal ;;
}
dimension: enginehoursnoidle {
label: "Unit Driving Time"
description: "Unit Specific Driving Hours By Day"
type: number
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${enginesum}-${idlesum} ;;
}
dimension: driving {
label: "Unit Driving Time"
description: "Unit Driving Hours By Day"
type: number
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${enginetotal}-${idlehourscalc} ;;
}
dimension: odometertotal {
label: "Unit Mileage"
description: "Unit Specific Mileage By Day"
type: number
sql: ${TABLE}.odometertotal*0.621371 ;;
}
dimension: daily_fleet_used {
label: "Day Used"
description: "Unit Specific Usage By Day - Company Defines Usage As a Day Exceeding usage_threshold_miles Miles Driven"
type: int
sql: CASE
WHEN ${odometertotal} > usage_threshold_miles THEN 1
ELSE 0 END ;;
}
dimension: ptototal {
label: "Unit PTO Time"
description: "Unit Specific PTO Hours By Day"
type: number
sql: ${TABLE}.ptototal ;;
}
dimension: ptonoboomtotal {
label: "Unit PTO Time Without Boom"
description: "Unit Specific PTO Hours Without Boom Hours By Day"
type: number
sql: ${ptototal}-${boomtotal} ;;
}
dimension: boomtotal {
label: "Unit Boom Time"
description: "Unit Specific Boom Hours By Day"
type: number
sql: ${TABLE}.boomtotal ;;
}
dimension: totalevents {
type: number
hidden: yes
sql: ${TABLE}.totalevents ;;
}
dimension: accelerationtotal {
label: "Unit Acceleration Events"
description: "Unit Specific Acceleration Events By Day - Company default settings is an event when driver accelerates greater than acceleration_event_threshold"
type: number
sql: ${TABLE}.accelerationtotal ;;
}
dimension: brakingtotal {
label: "Unit Braking Events"
description: "Unit Specific Braking Events By Day - Company default settings is an event when driver accelerates greater than braking_event_threshold"
type: number
sql: ${TABLE}.brakingtotal ;;
}
dimension: corneringtotal {
label: "Unit Cornering Events"
description: "Unit Specific Cornering Events By Day - Company default settings is an event when the vehicle's centrifugal g-force is over the specific G-force threshold of 7usage_threshold_miles0mg for .1 seconds"
type: number
sql: ${TABLE}.corneringtotal ;;
}
dimension: faulttotal {
label: "Unit Fault Code Events"
description: "Unit Specific Fault Code Events By Day"
type: number
sql: ${TABLE}.faulttotal ;;
}
dimension: speedingtotal {
label: "Unit Speeding Events"
description: "Unit Specific Speeding Events By Day - Company default setting is an event exceeding 77mph for usage_threshold_miles seconds. This event turns off when the vehicle goes below 7usage_threshold_miles mph for usage_threshold_miles seconds"
type: number
sql: ${TABLE}.speedingtotal ;;
}
dimension: maxspeed {
label: "Maximum Unit Speed"
description: "Maximum Speed By Vehicle By Day"
type: number
sql: ${TABLE}.maxspeed ;;
}
dimension: lowbatterytotal {
label: "Unit Low Battery Events"
description: "Unit Specific Low Battery Events By Day"
type: number
sql: ${TABLE}.lowbatterytotal ;;
}
dimension: enginestarttotal {
type: number
hidden: yes
sql: ${TABLE}.enginestarttotal ;;
}
dimension: enginestoptotal {
label: "Unit Engine Stops"
description: "Unit Specific Engine Stops By Day"
type: number
sql: ${TABLE}.enginestoptotal ;;
}
dimension: usersvehicleid {
label: "Unit Number"
description: "Unit Number From Company Platform"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${TABLE}.displayname ;;
}
dimension: devicecode {
hidden: yes
sql: ${TABLE}.devicecode ;;
}
dimension: accountid {
sql: ${TABLE}.accountid ;;
}
dimension: firstcomm {
type: number
hidden: yes
sql: ${TABLE}.firstcomm ;;
}
dimension: dayname {
type: number
hidden: yes
sql: ${TABLE}.dayname ;;
}
dimension: gooddate {
type: int
hidden: yes
sql: CASE
WHEN ${dayend} > ${firstcomm} THEN 1
ELSE 0 END ;;
}
dimension: weekend {
}
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 ;;
}
measure: count {
type: count
drill_fields: [detail*]
}
measure: idlesum {
label: "Total Idle Without Boom"
description: "Idle Hours Without Boom"
type: sum
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${idlehoursnoboom} ;;
}
measure: allidlesum {
label: "Total Idle"
description: "Idle Hours All Included"
type: sum
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${idlehourscalc} ;;
}
measure: idlesumnopto {
label: "Idle Time"
description: "Idle Hours Without PTO"
type: sum
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${idlehoursnopto} ;;
}
measure: fuelsum {
label: "Total Fuel Gallons"
description: "Total Fuel Gallons Over Specified Timeframe"
type: sum
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${fueltotal} ;;
}
measure: enginesum {
label: "Total Engine Hours"
description: "Total Engine Hours Over Specified Timeframe"
type: sum
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${enginetotal} ;;
}
measure: idlepercentage {
label: "Idling Percentage Without Boom"
description: "Total Idle Hours Without Boom Usage/ Total Engine Run Time Over Specified Timeframe"
type: number
value_format: "##.0%"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${idlesum}/NULLIF(${enginesum},0) ;;
}
measure: allidlepercentage {
label: "Idling Percentage With Boom"
description: "Total Idle Hours / Total Engine Run Time Over Specified Timeframe"
type: number
value_format: "##.0%"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${allidlesum}/NULLIF(${enginesum},0) ;;
}
measure: idlepercentagewithoutpto {
label: "Idling Percentage"
description: "Total Idle Hours Without PTO / Total Engine Run Time Over Specified Timeframe"
type: number
value_format: "##.0%"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${idlesumnopto}/NULLIF(${enginesum},0) ;;
}
measure: idleboompercentage {
label: "Idle Percentage Only Boom"
description: "Total Idle Hours From Boom Usage / Total Engine Run Time Over Specified Timeframe"
type: number
value_format: "##.0%"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${boomsum}/NULLIF(${enginesum},0) ;;
}
measure: idleptonoboompercentage {
label: "Idle Percentage From PTO Without Boom"
description: "Total Idle Hours From PTO Without Boom Usage / Total Engine Run Time Over Specified Timeframe"
type: number
value_format: "##.0%"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${ptosum}/NULLIF(${enginesum},0) ;;
}
measure: drivingsum {
label: "Driving Time"
description: "Driving Hours"
type: number
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${enginesum}-${allidlesum} ;;
}
measure: drivingaverage {
label: "Average Driving Time"
description: "Average Driving Hours"
type: average
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: (${enginetotal}-${idlehourscalc}) ;;
}
measure: odometersum {
label: "Total Mileage"
description: "Total Mileage Over Specified Timeframe"
type: sum
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${odometertotal} ;;
}
measure: ptosum {
label: "PTO Time Without Boom"
description: "PTO Hours Without BoomOver Specified Timeframe"
type: sum
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${ptonoboomtotal} ;;
}
measure: boomsum {
label: "Boom Time"
description: "Boom Hours Over Specified Timeframe"
type: sum
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${boomtotal} ;;
}
measure: accelsum {
label: "Total Acceleration Events"
description: "Total Acceleration Events Over Specified Timeframe - Company default settings is an event when driver accelerates greater than acceleration_event_threshold"
type: sum
value_format: "0.00"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${accelerationtotal} ;;
}
measure: accelerationscore {
label: "Total Acceleration Score"
description: "Total Acceleration Score = Number of Acceleration Events Per 100 Driving Hours"
type: number
value_format: "0.00"
drill_fields: [usersvehicleid, totalscore, brakingscore, corneringscore, speedingscore, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum]
sql: ((${accelsum}*1.0)/NULLIF(${drivingsum},0))*100.0 ;;
}
measure: brakesum {
label: "Total Braking Events"
description: "Total Braking Events Over Specified Timeframe - Company default settings is an event when driver accelerates greater than braking_event_threshold"
type: sum
value_format: "0.00"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${brakingtotal} ;;
}
measure: brakingscore {
label: "Total Braking Score"
description: "Total Braking Score = Number of Braking Events Per 100 Driving Hours"
type: number
value_format: "0.00"
drill_fields: [usersvehicleid, totalscore, brakingscore, corneringscore, speedingscore, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum]
sql: ((${brakesum}*1.0)/NULLIF(${drivingsum},0))*100.0 ;;
}
measure: cornersum {
label: "Total Cornering Events"
description: "Total Cornering Events Over Specified Timeframe - Company default settings is an event when the vehicle's centrifugal g-force is over the specific G-force threshold of 7usage_threshold_miles0mg for .1 seconds"
type: sum
value_format: "0.00"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${corneringtotal} ;;
}
measure: corneringscore {
label: "Total Cornering Score"
description: "Total Cornering Score = Number of Cornering Events Per 100 Driving Hours"
type: number
value_format: "0.00"
drill_fields: [usersvehicleid, totalscore, brakingscore, corneringscore, speedingscore, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum]
sql: ((${cornersum}*1.0)/NULLIF(${drivingsum},0))*100.0 ;;
}
measure: speedsum {
label: "Total Speeding Events"
description: "Total Speeding Events Over Specified Timeframe - Company default setting is an event exceeding 77mph for usage_threshold_miles seconds. This event turns off when the vehicle goes below 7usage_threshold_miles mph for usage_threshold_miles seconds"
type: sum
value_format: "0.00"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${speedingtotal} ;;
}
measure: speedingscore {
label: "Total Speeding Score"
description: "Total Speeding Score = Number of Speeding Events Per 100 Driving Hours"
type: number
value_format: "0.00"
drill_fields: [usersvehicleid, totalscore, brakingscore, corneringscore, speedingscore, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum]
sql: ((${speedsum}*1.0)/NULLIF(${drivingsum},0))*100.0 ;;
}
measure: totalscore {
label: "Total Safety Score"
description: "Total Satefy Score = Acceleration Score + Braking Score + Cornering Score + Speeding Score"
type: number
value_format: "0.00"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${speedingscore}+${corneringscore} ;;
}
measure: usedsum {
label: "Total Days Used"
description: "Total Days Used Over Timeframe- Company Defines Usage As a Day Exceeding usage_threshold_miles Miles Driven"
type: sum
value_format: "#,##0"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${daily_fleet_used} ;;
}
measure: total_days_selected {
type: sum
hidden: yes
value_format: "#,##0"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, accelsum, brakesum, cornersum, speedsum]
sql: ${gooddate} ;;
}
measure: usage_rate {
label: "Usage Rate"
description: "Percentage of Used Vehicles Over Timeframe - Company Defines Usage As a Day Exceeding usage_threshold_miles Miles Driven"
type: number
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, usage_rate]
sql: ROUND(100.0*${usedsum}/NULLIF(${total_days_selected},0),1) ;;
}
measure: unused_rate {
label: "Unused Rate"
description: "Percentage of Unused Vehicles Over Timeframe - Company Defines Usage As a Day Exceeding usage_threshold_miles Miles Driven"
type: number
value_format: "0.00\%"
drill_fields: [usersvehicleid, usedsum, odometersum, enginesum, fuelsum, ptosum, boomsum, idlesum, usage_rate]
sql: 100-ROUND(100.0*${usedsum}/NULLIF(${total_days_selected},0),1) ;;
}
}
daily_vehicle_summary.view.lookml · 751 lines
source-preserved
- view: daily_vehicle_summary
derived_table:
sql: SELECT s.dailysummaryid, s.deviceidint, accountidint, displayname, daystart,dayend,timezone,datename,idletotal
,fueltotal,enginetotal,odometertotal,(CASE WHEN ptototal>idletotal THEN boomtotal ELSE ptototal END) AS ptototal,boomtotal,totalevents,accelerationtotal,brakingtotal
,corneringtotal,faulttotal,speedingtotal,maxspeed,lowbatterytotal,enginestarttotal,enginestoptotal,devicecode,firstcomm,accountid, EXTRACT(DAYOFWEEK FROM datename) AS dayname
FROM
daily_summary s
LEFT JOIN delta_summary d ON s.dailysummaryid=d.dailysummaryid
LEFT JOIN event_summary e ON e.dailysummaryid=s.dailysummaryid
LEFT JOIN (SELECT d.deviceidint, d.displayname, d.devicecode, d.accountid
FROM device d) c ON c.deviceidint=s.deviceidint
INNER JOIN (SELECT es.deviceidint, MIN(da.daystart) AS firstcomm FROM daily_summary da, event_summary es
WHERE es.dailysummaryid=da.dailysummaryid and es.totalevents>0 GROUP BY es.deviceidint) ev ON ev.deviceidint=s.deviceidint
INNER JOIN (SELECT l.deviceidint, l.groupid FROM devicelist l WHERE l.groupid=l.accountid) l ON l.deviceidint=s.deviceidint
FULL OUTER JOIN (SELECT l.deviceidint, l.groupid FROM devicelist l WHERE l.groupid='dual_placeholder1') dual ON dual.deviceidint=s.deviceidint
where dual.deviceidint IS NULL
fields:
- dimension: dailysummaryid
type: number
hidden: true
sql: ${TABLE}.dailysummaryid
- dimension: deviceidint
type: number
hidden: true
sql: ${TABLE}.deviceidint
- dimension: accountidint
type: number
hidden: true
sql: ${TABLE}.accountidint
- dimension: daystart
type: number
hidden: true
sql: ${TABLE}.daystart
- dimension: dayend
type: number
hidden: true
sql: ${TABLE}.dayend
- dimension: timezone
hidden: true
sql: ${TABLE}.timezone
- dimension: idletotal
type: number
hidden: true
sql: ${TABLE}.idletotal
- dimension: idlehoursadjust
type: number
hidden: true
sql: CASE
WHEN ${devicecode}='atrack' THEN ${idletotal}/60.0
ELSE ${idletotal} END
- dimension: idlehourscalc
type: number
label: Unit Idle Time
description: Unit Total Idle Hours By Day
sql: CASE
WHEN ${idlehoursadjust}>${enginetotal} THEN ${enginetotal}
ELSE ${idlehoursadjust} END
- dimension: idlehoursnoboom
type: number
label: Unit Idle Without Boom
description: Unit Specific Idle Hours Without Boom By Day
sql: ${idlehourscalc}-${boomtotal}
- dimension: idlehoursnopto
type: number
label: Unit Idle Without PTO
description: Unit Specific Idle Hours Without PTO By Day
sql: ${idlehourscalc}-${ptototal}
- dimension: fueltotal
type: number
label: Unit Fuel Gallons
description: Unit Specific Fuel Consumption By Day
sql: ${TABLE}.fueltotal*0.264172
- dimension: enginetotal
type: number
label: Unit Engine Run Time
description: Unit Specific Engine Hours By Day
sql: ${TABLE}.enginetotal
- dimension: enginehoursnoidle
type: number
label: Unit Driving Time
description: Unit Specific Driving Hours By Day
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${enginesum}-${idlesum}
- dimension: driving
type: number
label: Unit Driving Time
description: Unit Driving Hours By Day
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${enginetotal}-${idlehourscalc}
- dimension: odometertotal
type: number
label: Unit Mileage
description: Unit Specific Mileage By Day
sql: ${TABLE}.odometertotal*0.621371
- dimension: daily_fleet_used
type: int
label: Day Used
description: Unit Specific Usage By Day - Company Defines Usage As a Day Exceeding usage_threshold_miles Miles Driven
sql: CASE
WHEN ${odometertotal} > usage_threshold_miles THEN 1
ELSE 0 END
- dimension: ptototal
type: number
label: Unit PTO Time
description: Unit Specific PTO Hours By Day
sql: ${TABLE}.ptototal
- dimension: ptonoboomtotal
type: number
label: Unit PTO Time Without Boom
description: Unit Specific PTO Hours Without Boom Hours By Day
sql: ${ptototal}-${boomtotal}
- dimension: boomtotal
type: number
label: Unit Boom Time
description: Unit Specific Boom Hours By Day
sql: ${TABLE}.boomtotal
- dimension: totalevents
type: number
hidden: true
sql: ${TABLE}.totalevents
- dimension: accelerationtotal
type: number
label: Unit Acceleration Events
description: Unit Specific Acceleration Events By Day - Company default settings is an event when driver accelerates greater than acceleration_event_threshold
sql: ${TABLE}.accelerationtotal
- dimension: brakingtotal
type: number
label: Unit Braking Events
description: Unit Specific Braking Events By Day - Company default settings is an event when driver accelerates greater than braking_event_threshold
sql: ${TABLE}.brakingtotal
- dimension: corneringtotal
type: number
label: Unit Cornering Events
description: Unit Specific Cornering Events By Day - Company default settings is an event when the vehicle's centrifugal g-force is over the specific G-force threshold of 7usage_threshold_miles0mg for .1 seconds
sql: ${TABLE}.corneringtotal
- dimension: faulttotal
type: number
label: Unit Fault Code Events
description: Unit Specific Fault Code Events By Day
sql: ${TABLE}.faulttotal
- dimension: speedingtotal
type: number
label: Unit Speeding Events
description: Unit Specific Speeding Events By Day - Company default setting is an event exceeding 77mph for usage_threshold_miles seconds. This event turns off when the vehicle goes below 7usage_threshold_miles mph for usage_threshold_miles seconds
sql: ${TABLE}.speedingtotal
- dimension: maxspeed
type: number
label: Maximum Unit Speed
description: Maximum Speed By Vehicle By Day
sql: ${TABLE}.maxspeed
- dimension: lowbatterytotal
type: number
label: Unit Low Battery Events
description: Unit Specific Low Battery Events By Day
sql: ${TABLE}.lowbatterytotal
- dimension: enginestarttotal
type: number
hidden: true
sql: ${TABLE}.enginestarttotal
- dimension: enginestoptotal
type: number
label: Unit Engine Stops
description: Unit Specific Engine Stops By Day
sql: ${TABLE}.enginestoptotal
- dimension: usersvehicleid
label: Unit Number
description: Unit Number From Company Platform
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${TABLE}.displayname
- dimension: devicecode
hidden: true
sql: ${TABLE}.devicecode
- dimension: accountid
sql: ${TABLE}.accountid
- dimension: firstcomm
type: number
hidden: true
sql: ${TABLE}.firstcomm
- dimension: dayname
type: number
hidden: true
sql: ${TABLE}.dayname
- dimension: gooddate
type: int
hidden: true
sql: CASE
WHEN ${dayend} > ${firstcomm} THEN 1
ELSE 0 END
- dimension: weekend
- dimension_group: datename
type: time
timeframes:
- time
- date
- week
- month
convert_tz: false
sql: ${TABLE}.datename
- measure: count
type: count
drill_fields:
- detail*
- measure: idlesum
type: sum
label: Total Idle Without Boom
description: Idle Hours Without Boom
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${idlehoursnoboom}
- measure: allidlesum
type: sum
label: Total Idle
description: Idle Hours All Included
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${idlehourscalc}
- measure: idlesumnopto
type: sum
label: Idle Time
description: Idle Hours Without PTO
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${idlehoursnopto}
- measure: fuelsum
type: sum
label: Total Fuel Gallons
description: Total Fuel Gallons Over Specified Timeframe
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${fueltotal}
- measure: enginesum
type: sum
label: Total Engine Hours
description: Total Engine Hours Over Specified Timeframe
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${enginetotal}
- measure: idlepercentage
type: number
label: Idling Percentage Without Boom
description: Total Idle Hours Without Boom Usage/ Total Engine Run Time Over Specified Timeframe
value_format: '##.0%'
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${idlesum}/NULLIF(${enginesum},0)
- measure: allidlepercentage
type: number
label: Idling Percentage With Boom
description: Total Idle Hours / Total Engine Run Time Over Specified Timeframe
value_format: '##.0%'
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${allidlesum}/NULLIF(${enginesum},0)
- measure: idlepercentagewithoutpto
type: number
label: Idling Percentage
description: Total Idle Hours Without PTO / Total Engine Run Time Over Specified Timeframe
value_format: '##.0%'
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${idlesumnopto}/NULLIF(${enginesum},0)
- measure: idleboompercentage
type: number
label: Idle Percentage Only Boom
description: Total Idle Hours From Boom Usage / Total Engine Run Time Over Specified Timeframe
value_format: '##.0%'
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${boomsum}/NULLIF(${enginesum},0)
- measure: idleptonoboompercentage
type: number
label: Idle Percentage From PTO Without Boom
description: Total Idle Hours From PTO Without Boom Usage / Total Engine Run Time Over Specified Timeframe
value_format: '##.0%'
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${ptosum}/NULLIF(${enginesum},0)
- measure: drivingsum
type: number
label: Driving Time
description: Driving Hours
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${enginesum}-${allidlesum}
- measure: drivingaverage
type: average
label: Average Driving Time
description: Average Driving Hours
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: (${enginetotal}-${idlehourscalc})
- measure: odometersum
type: sum
label: Total Mileage
description: Total Mileage Over Specified Timeframe
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${odometertotal}
- measure: ptosum
type: sum
label: PTO Time Without Boom
description: PTO Hours Without BoomOver Specified Timeframe
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${ptonoboomtotal}
- measure: boomsum
type: sum
label: Boom Time
description: Boom Hours Over Specified Timeframe
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${boomtotal}
- measure: accelsum
type: sum
label: Total Acceleration Events
description: Total Acceleration Events Over Specified Timeframe - Company default settings is an event when driver accelerates greater than acceleration_event_threshold
value_format: 0.00
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${accelerationtotal}
- measure: accelerationscore
type: number
label: Total Acceleration Score
description: Total Acceleration Score = Number of Acceleration Events Per 100 Driving Hours
value_format: 0.00
drill_fields:
- usersvehicleid
- totalscore
- brakingscore
- corneringscore
- speedingscore
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
sql: ((${accelsum}*1.0)/NULLIF(${drivingsum},0))*100.0
- measure: brakesum
type: sum
label: Total Braking Events
description: Total Braking Events Over Specified Timeframe - Company default settings is an event when driver accelerates greater than braking_event_threshold
value_format: 0.00
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${brakingtotal}
- measure: brakingscore
type: number
label: Total Braking Score
description: Total Braking Score = Number of Braking Events Per 100 Driving Hours
value_format: 0.00
drill_fields:
- usersvehicleid
- totalscore
- brakingscore
- corneringscore
- speedingscore
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
sql: ((${brakesum}*1.0)/NULLIF(${drivingsum},0))*100.0
- measure: cornersum
type: sum
label: Total Cornering Events
description: Total Cornering Events Over Specified Timeframe - Company default settings is an event when the vehicle's centrifugal g-force is over the specific G-force threshold of 7usage_threshold_miles0mg for .1 seconds
value_format: 0.00
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${corneringtotal}
- measure: corneringscore
type: number
label: Total Cornering Score
description: Total Cornering Score = Number of Cornering Events Per 100 Driving Hours
value_format: 0.00
drill_fields:
- usersvehicleid
- totalscore
- brakingscore
- corneringscore
- speedingscore
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
sql: ((${cornersum}*1.0)/NULLIF(${drivingsum},0))*100.0
- measure: speedsum
type: sum
label: Total Speeding Events
description: Total Speeding Events Over Specified Timeframe - Company default setting is an event exceeding 77mph for usage_threshold_miles seconds. This event turns off when the vehicle goes below 7usage_threshold_miles mph for usage_threshold_miles seconds
value_format: 0.00
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${speedingtotal}
- measure: speedingscore
type: number
label: Total Speeding Score
description: Total Speeding Score = Number of Speeding Events Per 100 Driving Hours
value_format: 0.00
drill_fields:
- usersvehicleid
- totalscore
- brakingscore
- corneringscore
- speedingscore
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
sql: ((${speedsum}*1.0)/NULLIF(${drivingsum},0))*100.0
- measure: totalscore
type: number
label: Total Safety Score
description: Total Satefy Score = Acceleration Score + Braking Score + Cornering Score + Speeding Score
value_format: 0.00
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${speedingscore}+${corneringscore}
- measure: usedsum
type: sum
label: Total Days Used
description: Total Days Used Over Timeframe- Company Defines Usage As a Day Exceeding usage_threshold_miles Miles Driven
value_format: '#,##0'
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${daily_fleet_used}
- measure: total_days_selected
type: sum
value_format: '#,##0'
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- accelsum
- brakesum
- cornersum
- speedsum
sql: ${gooddate}
- measure: usage_rate
type: number
label: Usage Rate
description: Percentage of Used Vehicles Over Timeframe - Company Defines Usage As a Day Exceeding usage_threshold_miles Miles Driven
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- usage_rate
sql: ROUND(100.0*${usedsum}/NULLIF(${total_days_selected},0),1)
- measure: unused_rate
type: number
label: Unused Rate
description: Percentage of Unused Vehicles Over Timeframe - Company Defines Usage As a Day Exceeding usage_threshold_miles Miles Driven
value_format: '0.00\%'
drill_fields:
- usersvehicleid
- usedsum
- odometersum
- enginesum
- fuelsum
- ptosum
- boomsum
- idlesum
- usage_rate
sql: 100-ROUND(100.0*${usedsum}/NULLIF(${total_days_selected},0),1)
Contents
- daily_vehicle_summary.sql
- daily_vehicle_summary.sql
- daily_vehicle_summary.view.lkml
- daily_vehicle_summary.view.lookml