Dataford
Interview QuestionsInterview GuidesExperiencesCoaching
New
Pricing
Get started
Dataford
Popular roles
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Browse
Browse All RolesEvery role hub, from analyst to MLBrowse All CompaniesCompany-specific interview loopsAll Interview GuidesThe full guide library
Top questions by role
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Top questions by skill
SQLPythonStatisticsMachine LearningA/B TestingSystem DesignGenerative AIProduct SenseMetricsBehavioral
Browse all questions →Try a mock interview
Experiences
Practice
Mock InterviewsTimed interview simulations with feedbackCoaching1:1 coaching with people at your target companiesSuccess PathYour 6-week structured planModulesCurated lessons by topicWebinarsTalks from ex-Big Tech data leadsPlaygroundA free-form scratch editor
Learn
BlogInterview strategy and career adviceTech Job Market ReportHiring trends across data and AI rolesFor UniversitiesDataford for career centersAbout DatafordWho we are and how we build
Pricing
Build my plan
Rolling 7-Day SQL Ranking
00:00
5 left

Rolling 7-Day SQL Ranking

MediumSQL · PostgreSQL

Problem

NASA's Deep Space Network receives daily quality-controlled signal measurements from instruments supporting missions such as Artemis II and Europa Clipper. Write a PostgreSQL query that calculates each instrument's rolling 7-day signal average and ranks instruments within their mission group for each observation date.

Requirements

  1. Join missions, instruments, and observations.
  2. Include only nominal observations with non-NULL signal values from February 1 through February 10, 2025.
  3. Aggregate multiple observations for an instrument on the same date before calculating the rolling average. Treat the rolling window as the current date and preceding six calendar days.
  4. Rank instruments by rolling average within each mission_group and date, with the highest average ranked first. Use RANK() so ties share a rank.
  5. Return mission_group, observation_date, instrument_name, rolling_7_day_avg, and group_rank, ordered by group, date, rank, and instrument name.

Schema

missions
ColumnTypeDescription
mission_idPKINTUnique NASA mission identifier
mission_nameVARCHAR(100)Mission name
mission_groupVARCHAR(50)Research group used for ranking
instruments
ColumnTypeDescription
instrument_idPKINTUnique instrument identifier
mission_idINTOwning mission
instrument_nameVARCHAR(120)Instrument name
observations
ColumnTypeDescription
observation_idPKINTUnique observation identifier
instrument_idINTInstrument producing the observation
observation_dateDATEUTC observation date
signal_valueNUMERIC(10,2)Measured signal value
quality_flagVARCHAR(20)Measurement quality classification
Tablesmissionsinstrumentsobservations
Interviewer

Your question is Rolling 7-Day SQL Ranking. 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
Sign up free to run your codeLog inLn 1
Run your query to see results here.