Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started
Top Campaigns by Revenue Per Client
00:00
5 left

Top Campaigns by Revenue Per Client

MediumSQL · PostgreSQL

Problem

Write a query to find the top 3 performing marketing campaigns by revenue for each client in the last 30 days on Attentive.

Use the provided client, campaign, and revenue event data. Treat the last 30 days as beginning at CURRENT_DATE - INTERVAL '30 days'. Break revenue ties by the lower campaign ID.

Output

  1. One row per qualifying campaign, with client_name, campaign_id, campaign_name, total_revenue, and campaign_rank.
  2. Include no more than three campaigns per client, ordered by client_name, campaign_rank, and campaign_id.

Schema

clients
ColumnTypeDescription
client_idPKINTUnique Attentive client identifier
client_nameVARCHAR(100)Client display name
campaigns
ColumnTypeDescription
campaign_idPKINTUnique marketing campaign identifier
client_idINTClient that owns the campaign
campaign_nameVARCHAR(150)Campaign display name
revenue_events
ColumnTypeDescription
event_idPKINTUnique revenue event identifier
campaign_idINTCampaign attributed to the event
event_atTIMESTAMPTZTimestamp when revenue was attributed
revenue_amountNUMERIC(12,2)Revenue attributed to the event
Tablesclientscampaignsrevenue_events
Interviewer

Your question is Top Campaigns by Revenue Per Client. 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
You need to log in / sign up to run or submit.Ln 1
Run your query to see results here.