Dataford
Interview QuestionsInterview GuidesExperiencesCoaching
New
Pricing
Get started
Dataford
Popular roles
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Browse
Browse All RolesEvery role hub, from analyst to MLBrowse All CompaniesCompany-specific interview loopsAll Interview GuidesThe full guide library
Top questions by role
Software EngineerData AnalystData ScientistData EngineerBusiness AnalystAI EngineerMachine Learning EngineerProduct Manager
Top questions by skill
SQLPythonStatisticsMachine LearningA/B TestingSystem DesignGenerative AIProduct SenseMetricsBehavioral
Browse all questions →Try a mock interview
Experiences
Practice
Mock InterviewsTimed interview simulations with feedbackCoaching1:1 coaching with people at your target companiesSuccess PathYour 6-week structured planModulesCurated lessons by topicWebinarsTalks from ex-Big Tech data leadsPlaygroundA free-form scratch editor
Learn
BlogInterview strategy and career adviceTech Job Market ReportHiring trends across data and AI rolesFor UniversitiesDataford for career centersAbout DatafordWho we are and how we build
Pricing
Build my plan
Advertiser Cohort Performance Over Time
00:00
5 left

Advertiser Cohort Performance Over Time

HardSQL · PostgreSQL

Problem

You are given Lyft Ads data for advertisers, campaigns, and daily performance. Write a PostgreSQL query that analyzes advertiser performance by monthly signup cohort and month since cohort start. For each cohort month and cohort_age_month, return the number of advertisers in the cohort, the number of active advertisers in that period, total spend, total attributed rides, average spend per active advertiser, and the prior-period spend change using a window function. Treat an advertiser as active in a month if total spend in that month is greater than 0. Include advertisers with no campaign activity after signup so cohort sizes are not understated.

Schema

advertisers
ColumnTypeDescription
advertiser_idPKINTUnique advertiser identifier
advertiser_nameVARCHAR(100)Advertiser name
signup_dateDATEDate the advertiser joined Lyft Ads
verticalVARCHAR(50)Advertiser industry vertical
campaigns
ColumnTypeDescription
campaign_idPKINTUnique campaign identifier
advertiser_idINTAdvertiser that owns the campaign
campaign_nameVARCHAR(100)Campaign name
launch_surfaceVARCHAR(50)Lyft surface where the ad was shown
daily_campaign_performance
ColumnTypeDescription
performance_idPKINTUnique daily performance row identifier
campaign_idINTCampaign identifier
activity_dateDATEDate of campaign activity
spend_usdNUMERIC(10,2)Daily ad spend in USD
attributed_ridesINTRides attributed to the campaign on that date
Tablesadvertiserscampaignsdaily_campaign_performance
Interviewer

Your question is Advertiser Cohort Performance Over Time. 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
Sign up free to run your codeLog inLn 1
Run your query to see results here.