Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

SQL Rolling Average With Spikes

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

Your question is SQL Rolling Average With Spikes. 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

Point72's trading analytics team wants to monitor unusual daily activity by ticker. Write a PostgreSQL query that aggregates trade volume by ticker and trading date, then compares each day with the prior seven completed trading observations.

Requirements

  1. Join trades to active securities only and aggregate total volume per ticker and date.
  2. Calculate a seven-observation rolling average and sample standard deviation using window functions. Exclude the current day from the baseline.
  3. Flag a day as a volume spike when its volume exceeds the rolling average plus two rolling standard deviations. Return false when the baseline is not yet available.
  4. Return results ordered by ticker and trade date.

Schema

trades
ColumnTypeDescription
trade_idPKINTUnique trade identifier
tickerVARCHAR(10)Ticker symbol referenced by securities
trade_dateDATEDate on which the trade occurred
volumeINTNumber of shares traded
securities
ColumnTypeDescription
tickerPKVARCHAR(10)Security ticker symbol
security_nameVARCHAR(100)Security display name
is_activeBOOLEANWhether the security is actively monitored
Tablestradessecurities
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results