Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

SQL Campaign Performance by Channel

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

Your question is SQL Campaign Performance by Channel. 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

Targetbase needs a channel-level performance view for campaigns launched during January 2025. Write a PostgreSQL query that summarizes campaign delivery and business outcomes by marketing channel.

Requirements

  1. Include active campaigns launched from 2025-01-01 through 2025-01-31.
  2. Group results by channel and include the number of distinct campaigns, impressions, clicks, conversions, spend, and revenue.
  3. Calculate click-through rate as clicks divided by impressions, expressed as a percentage, and calculate ROAS as revenue divided by spend. Return zero for either metric when its denominator is zero.
  4. Include active in-range campaigns even when they have no event rows, and sort by total revenue descending, then channel ascending.

Schema

campaigns
ColumnTypeDescription
campaign_idPKINTEGERUnique campaign identifier
campaign_nameVARCHAR(100)Campaign name
channelVARCHAR(50)Marketing channel
statusVARCHAR(20)Campaign lifecycle status
launched_atDATECampaign launch date
campaign_events
ColumnTypeDescription
event_idPKINTEGERUnique event record identifier
campaign_idINTEGERReferences campaigns.campaign_id
event_typeVARCHAR(30)Event classification
impressionsINTEGERDelivered impressions
clicksINTEGERRecorded clicks
conversionsINTEGERAttributed conversions
spendNUMERIC(12,2)Media spend
revenueNUMERIC(12,2)Attributed revenue
Tablescampaignscampaign_events
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results