Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started
Rolling Disengagement Averages
00:00
5 left

Rolling Disengagement Averages

HardSQL · PostgreSQL

Problem

Write a SQL query using SQL window functions to compute rolling 7-day averages of disengagement rates across different vehicle cohorts and geofences.

Calculate rates from engagement-level records and include only records with valid cohort and geofence references.

Output

  1. One row per vehicle cohort, geofence, and observed activity date
  2. Columns: vehicle_cohort, geofence, activity_date, daily_disengagement_rate, and rolling_7_day_avg
  3. Include the current date and the preceding six calendar days in each rolling period, averaging observed daily rates
  4. Order by vehicle_cohort, geofence, and activity_date ascending

Schema

engagement_events
ColumnTypeDescription
engagement_idPKINTUnique engagement record identifier
cohort_idINTVehicle cohort reference
geofence_idINTGeofence reference
activity_dateDATEDate of the engagement
disengagedBOOLEANWhether the vehicle disengaged during the engagement
vehicle_cohorts
ColumnTypeDescription
cohort_idPKINTUnique vehicle cohort identifier
cohort_nameVARCHAR(100)Vehicle cohort label
geofences
ColumnTypeDescription
geofence_idPKINTUnique geofence identifier
geofence_nameVARCHAR(100)Geofence label
Tablesengagement_eventsvehicle_cohortsgeofences
Interviewer

Your question is Rolling Disengagement Averages. Start with the requirements and the three tables in the Question tab.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.
CodePostgreSQL
You need to log in / sign up to run or submit.Ln 1
Run your query to see results here.