Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

7-Day Rolling Average Bookings

MediumSQL · PostgreSQL00:00
Practice interviewer
In session
5 left
00:00

Your question is 7-Day Rolling Average Bookings. Start with the requirements and the two tables on the right.

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.

Problem

Navan wants to monitor booking trends across countries in Navan Travel. Write a PostgreSQL query that calculates a seven-day rolling average of confirmed daily bookings for each active country from January 1 through January 10, 2024.

Requirements

  1. Count only bookings with status = 'confirmed' and a valid country in countries.
  2. Include dates with zero bookings so the rolling period represents seven calendar days.
  3. Calculate the average of the current day and up to the six preceding days for each country.
  4. Return results ordered by country code and booking date, with the rolling average rounded to three decimal places.

Schema

countries
ColumnTypeDescription
country_idPKINTEGERUnique country identifier
country_codeVARCHAR(2)Two-letter country code
country_nameVARCHAR(100)Country display name
bookings
ColumnTypeDescription
booking_idPKINTEGERUnique booking identifier
country_idINTEGERCountry associated with the booking
booking_dateDATEDate on which the booking was created
statusVARCHAR(20)Booking lifecycle status
Tablescountriesbookings
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results