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 30-Day Average Exposure SQL
00:00
5 left

Rolling 30-Day Average Exposure SQL

MediumSQL · PostgreSQL

Problem

Barclays Risk Analytics needs a rolling exposure view for active UK counterparties monitored through Barclays risk reporting. Write a PostgreSQL query that calculates the rolling 30-day average exposure for each selected counterparty.

Requirements

  1. Include active counterparties in the UK region, including those with no exposure records.
  2. Include only exposure snapshots marked VALID and aggregate multiple snapshots on the same date.
  3. Treat missing daily exposure as zero, and calculate a 30-calendar-day average ending on each report date.
  4. Return results for 1 January 2025 through 3 January 2025, including the applicable risk limit and ordering by counterparty and date.

Schema

counterparties
ColumnTypeDescription
counterparty_idPKINTUnique counterparty identifier
counterparty_nameVARCHAR(100)Counterparty legal or reporting name
regionVARCHAR(30)Counterparty operating region
is_activeBOOLEANWhether the counterparty is currently active
counterparty_limits
ColumnTypeDescription
limit_idPKINTUnique limit record identifier
counterparty_idINTReferences counterparts.counterparty_id
limit_amountNUMERIC(12,2)Approved exposure limit
limit_statusVARCHAR(20)Status of the limit record
exposure_snapshots
ColumnTypeDescription
snapshot_idPKINTUnique exposure snapshot identifier
counterparty_idINTReferences counterparties.counterparty_id
exposure_dateDATEBusiness date of the exposure
exposure_amountNUMERIC(12,2)Exposure amount for the snapshot
snapshot_statusVARCHAR(20)Quality or processing status of the snapshot
Tablescounterpartiescounterparty_limitsexposure_snapshots
Interviewer

Your question is Rolling 30-Day Average Exposure SQL. 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.