Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

SQL CTE for Top 3 Products

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

Your question is SQL CTE for Top 3 Products. Start with the requirements and the three 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

Freddie Mac wants to compare revenue generated by offerings such as Loan Product Advisor and Home Possible. Write a PostgreSQL query using CTEs to return the top three products by revenue from completed orders.

Requirements

  1. Join products, orders, and order_items.
  2. Include only orders where order_status = 'completed'.
  3. Calculate revenue as quantity * unit_price, aggregate it by product, and rank products with a window function.
  4. Return the top three products in descending revenue order, using product_id as a deterministic tie-breaker.

Schema

products
ColumnTypeDescription
product_idPKINTUnique product identifier
product_nameVARCHAR(100)Freddie Mac product name
orders
ColumnTypeDescription
order_idPKINTUnique order identifier
order_statusVARCHAR(20)Current order status
order_items
ColumnTypeDescription
order_idINTIdentifier of the related order
product_idINTIdentifier of the purchased product
quantityINTNumber of units purchased
unit_priceNUMERIC(10,2)Price for one unit
Tablesproductsordersorder_items
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results