Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Top 5% Customers by Channel

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

Your question is Top 5% Customers by Channel. 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

You are given customer transaction data and a Capital One-style marketing attribution table that maps each customer to an acquisition channel such as Email, Paid Search, or CreditWise. Write a PostgreSQL query to return the customers who fall in the top 5% by transaction volume in the last 30 days, calculated separately within each marketing channel.

Treat transaction volume as the count of transactions in the last 30 days. Return each qualifying customer's channel, customer ID, customer name, 30-day transaction count, and their percentile rank within the channel. Assume the top 5% should be determined using a window-function-based percentile approach, and exclude transactions outside the 30-day window or rows with missing channel attribution.

Schema

customers
ColumnTypeDescription
customer_idPKINTUnique customer identifier
customer_nameVARCHAR(100)Customer full name
signup_dateDATEDate the customer signed up
marketing_attribution
ColumnTypeDescription
customer_idPKINTCustomer identifier
marketing_channelVARCHAR(50)Attributed acquisition or engagement channel
attribution_dateDATEDate the marketing channel attribution was recorded
transactions
ColumnTypeDescription
transaction_idPKINTUnique transaction identifier
customer_idINTCustomer who made the transaction
transaction_dateDATEDate of the transaction
amountDECIMAL(10,2)Transaction amount
Tablescustomersmarketing_attributiontransactions
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results