Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

SQL Window Functions for Portfolio Analysis

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

Your question is SQL Window Functions for Portfolio Analysis. 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

Write a SQL query using window functions such as RANK or PIVOT to analyze portfolio transactions.

Use the supplied portfolio and transaction data. Return monthly transaction totals for every portfolio, including portfolios without settled activity.

Output

  1. One row per portfolio and month, with transaction_month, portfolio_id, portfolio_name, buy_value, sell_value, net_value, transaction_count, and portfolio_rank.
  2. Include only settled BUY and SELL transactions in the calculations. Rank portfolios by descending monthly net_value, with ties sharing a rank.
  3. Order by month ascending, rank ascending, and portfolio ID ascending.

Schema

portfolios
ColumnTypeDescription
portfolio_idPKINTUnique portfolio identifier
portfolio_nameVARCHAR(100)Portfolio name
portfolio_transactions
ColumnTypeDescription
transaction_idPKINTUnique transaction identifier
portfolio_idINTPortfolio associated with the transaction
transaction_tsTIMESTAMPTransaction timestamp
transaction_typeVARCHAR(20)Transaction classification, such as BUY or SELL
amountDECIMAL(14,2)Transaction amount
statusVARCHAR(20)Settlement status
Tablesportfoliosportfolio_transactions
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results