Intervjufrågor för SQL och Python inom adtech: en komplett guide

Senaste uppdateringen: 8 April 2026
Författare: TecnoDigital
  • Tekniska intervjuer inom adtech fokuserar på SQL, Python med Pandas och analytiska färdigheter på mellannivå.
  • Det är viktigt att behärska JOIN, GROUP BY, delfrågor och fönsterfunktioner i både SQL och deras motsvarigheter i Pandas.
  • Att förstå modellutvärderingsmått som noggrannhet, F1 eller ROC-AUC ger mervärde i avancerade analysroller.
  • Effektiv förberedelse kombinerar teori, många praktiska övningar och att lära sig att förklara resonemanget högt.

intervjufrågor för adtech, sql och python

Om du förbereder dig för en intervju inom adtech , digital analys eller dataanalys kommer du förr eller senare att behöva ställas inför det fruktade tekniska testet. Det är där företag kontrollerar om du verkligen behärskar det du skriver på ditt CV: SQL för att extrahera data, Python för att bearbeta och analysera den, och lite analytiskt tänkande för att undvika att gå vilse bland alla tabeller och skript.

Den goda nyheten är att tekniska intervjuer inte är magiska: de kretsar vanligtvis kring samma block av SQL, Python och modellutvärdering . Om du förstår grunderna ordentligt, övar med verkliga övningar och lär dig att förklara dina resonemang, kommer du att ha en betydande fördel gentemot andra kandidater.

Varför tekniska intervjuer är skrämmande (och hur man tar udden av dem)

parametrar för artificiell intelligens
Relaterad artikel:
Parametrar för artificiell intelligens och hur de formar modeller

I roller som dataanalytiker eller produkt inom adtech kombinerar tekniska intervjuer vanligtvis konceptuella frågor med praktiska övningar i realtid . Du kan bli ombedd att förklara funktionen hos en SQL-klausul eller lösa ett affärsfall som involverar data från programmatiska reklamkampanjer.

Du kommer vanligtvis att bedömas på tre fronter: SQL på mellannivå (JOIN, GROUP BY, delfrågor, fönsterfunktioner), dataorienterad Python (Pandas, rensning, aggregeringar, sammanslagningar) och din förmåga att tolka resultat och kommunicera fynd . De letar inte efter en senior data scientist, utan snarare någon som kan arbeta med data på ett robust och tillförlitligt sätt.

Det typiska misstaget många kandidater gör är att fokusera på att memorera syntax och glömma att öva på kompletta övningar , liknande de du stöter på på plattformar som HackerRank, StrataScratch eller företagens egna interna tester. Ditt mål bör vara att komma till intervjun redan ha löst dussintals mycket liknande frågor och skript.

SQL-nivå som vanligtvis krävs i intervjuer med adtech och dataanalytiker

För en analytikerroll inom adtech- eller digitala marknadsföringsmiljöer förväntar sig företag att du är skicklig på klassisk relationell SQL : att extrahera data från flera tabeller, kombinera, gruppera och filtrera den, samt skapa användbara mätvärden. De kräver inte databasadministrationsfärdigheter, men du bör vara bekväm med måttligt komplexa frågor.

Vanligtvis inkluderar testet frågor som kombinerar INNER JOIN, LEFT JOIN, filter med WHERE-klausuler, aggregeringar med GROUP BY och vissa villkor för aggregeringar med HAVING-klausuler. Därifrån, i något mer avancerade positioner, är det mycket vanligt att se underfrågor och fönsterfunktioner för rankningar, kumulativa totaler och radjämförelser.

Inom adtech kommer du sannolikt att svara på affärsfrågor som "Vilka kampanjer har en bättre klickfrekvens än genomsnittet för sin bransch?" eller "Vilka utgivare förlorar visningar jämfört med förra månaden?" Att lösa dessa frågor effektivt kräver vanligtvis en grundläggande förståelse för korrelerade delfrågor och fönsterfunktioner.

Grundläggande SQL-frågor som ofta dyker upp (och hur man besvarar dem)

Nästan varje dataorienterad teknisk intervju innehåller en uppsättning grundläggande SQL-teorifrågor . De försöker inte lura dig, utan snarare se till att du har en solid grund.

En av de vanligaste frågorna är skillnaden mellan WHERE och HAVING . Det tydligaste sättet att förklara det är att WHERE filtrerar enskilda rader innan gruppering , medan HAVING filtrerar grupper som redan har aggregerats . Man kan också nämna att villkor som involverar aggregeringsfunktioner (COUNT, SUM, AVG, etc.) bör placeras i HAVING, inte WHERE.

En annan klassisk fråga är vilka typer av JOIN som finns och när man ska använda var och en: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN och, i vissa fall, CROSS JOIN eller self-join. Vid dataanalys används LEFT JOIN i stor utsträckning när man vill behålla hela den primära datamängden (till exempel alla användare) även om det inte finns några associerade poster i den sekundära tabellen (till exempel inköp).

Exempel på grundläggande SQL-frågor och deras logik

För att ge dig en uppfattning om den "lägsta rimliga" nivån bör du kunna skriva frågor från minnet, till exempel att välja specifika kolumner, filtrera rader och sortera resultat . På en mycket grundläggande nivå inkluderar typiska frågor: hur man extraherar alla kolumner från en tabell, hur man bara väljer vissa kolumner eller hur man tillämpar läsbara alias med AS.

Det är också vanligt att man får frågor om WHERE-klausulen med flera villkor som kombinerar AND, OR och NOT, eller hur man använder jämförelseoperatorer (<, <=, >, >=, =) för både numeriska värden och datum. Många företag betonar NULL -filter , där det inte räcker med att bara använda likhetstecknet; man måste använda IS NULL eller IS NOT NULL.

En annan klassiker är textbaserad filtrering med LIKE och mönster med jokertecknen % och _. Till exempel kan du hitta kampanjer vars namn innehåller ett specifikt ord eller användare vars e-postadresser slutar på en viss domän. Det är viktigt att förklara att LIKE '%text%' söker efter mönstret var som helst i strängen.

Slutligen täcker detta grundläggande avsnitt vanligtvis hur man uppdaterar poster med UPDATE och filtrerar vilka rader som ändras med WHERE, samt hur man tar bort rader med DELETE FROM med hjälp av tydliga villkor. Det är avgörande att du alltid betonar vikten av att använda en specifik WHERE-klausul för att undvika att av misstag radera halva tabellen.

Mellanfrågor: GROUP BY, HAVING, delfrågor och UNION

När du väl har gått förbi juniornivån börjar nästan alla företag värdesätta din behärskning av kombinationen av GROUP BY, aggregeringsfunktioner och filter på aggregeringar med HAVING . Det här är vad du kommer att använda dagligen för att generera prestationsrapporter för kampanjer, målgrupper och kreatörer.

  Hur Python Pandas kan göra din dataanalys enklare

Det fungerar så här: GROUP BY grupperar rader efter en eller flera kolumner, och du kan använda SUM, COUNT, AVG, MIN och MAX på dessa grupper för att beräkna mätvärden. HAVING kommer härnäst för att bara behålla de grupper som uppfyller ett villkor, till exempel kunder med försäljning över ett visst tröskelvärde.

Ett annat återkommande tema är delfrågor : en fråga inom en annan fråga. De används ofta för att filtrera efter värden som beräknats i ett tidigare steg, till exempel att välja kunder med försäljning över det globala genomsnittet eller kampanjer med visningar över 90:e percentilen.

Du får också ofta frågan om skillnaden mellan UNION och UNION ALL . UNION kombinerar två resultatmängder med samma schema och tar bort dubbletter; UNION ALL gör detsamma men behåller alla rader, även om de upprepas. Vid dataanalys föredrar du ofta UNION ALL av prestandaskäl och för att du vill bevara alla originalposter.

Fönsterfunktioner: nästa steg inom SQL

Fönsterfunktioner har blivit standard inom teknisk testning på en viss nivå, särskilt för adtech-relaterade roller där trender över tid, kampanjrankningar eller investeringstotaler behöver analyseras.

Huvudidén är att en fönsterfunktion beräknar ett värde över en uppsättning rader relaterade till den aktuella raden , men utan att komprimera resultatet som GROUP BY gör. Med andra ord ser du fortfarande varje enskild rad, men åtföljd av ett aggregat beräknat över ett "fönster" av data.

Den typiska syntaxen är att använda funktionen (SUM, AVG, RANK, etc.) följt av OVER, och inom OVER definiera partitionen (PARTITION BY) och ordningen (ORDER BY). Till exempel beräkna försäljningsrankningen per säljare eller det ackumulerade antalet visningar per dag.

Om du vill visa din skicklighet bör du bekanta dig med funktioner som RANK, DENSE_RANK, ROW_NUMBER, LAG och LEAD . De är mycket användbara för att rangordna kampanjer baserat på deras prestanda, jämföra varje period med den föregående eller identifiera variationer i viktiga mätvärden från år till år.

CTE, kumulativa totaler och glidande medelvärden

I moderna jobbintervjuer värderas läsbarheten hos din SQL-kod högt. Det är därför du ofta får frågor om vanliga tabelluttryck (CTE:er) . En CTE är i huvudsak en typ av namngiven temporär tabell, definierad med WITH-klausuler, som bara existerar under körningen av frågan.

CTE:er används för att dela upp komplexa frågor i logiska block och återanvända mellanliggande resultat. Till exempel beräknar du först dagliga mätvärden per kampanj i en CTE, och sedan, i huvudfrågan, utför du ytterligare aggregeringar eller filtrering på det resultatet.

En annan mycket vanlig övning är att beräkna en löpande summa med hjälp av SUM som en fönsterfunktion. I annonsteknikmiljöer är det normalt att bli tillfrågad om ackumulerade visningar, klick eller utgifter för att se hur en kampanj presterar över tid.

Relaterat till detta är glidande medelvärden , där AVG tillämpas som en fönsterfunktion över en förskjuten radram (till exempel de två föregående datumen och det aktuella). Detta är ett enkelt sätt att jämna ut tidsserier och upptäcka trender utan att förlita sig så mycket på dagliga toppar.

Python-nivå krävs vanligtvis för dataanalytiker

I de flesta dataanalytikerroller (inklusive adtech) förväntar sig företag inte att du är en maskininlärningsguru, men de förväntar sig att du har praktiska kunskaper i Python med pandas . Vanligtvis kommer du att bli ombedd att ladda datamängder, rensa dem, transformera dem och hämta enkla mätvärden eller visualiseringar.

Python-tester fokuserar vanligtvis på operationer som att läsa data från CSV-filer , inspektera nullvärden och kolumntyper, filtrera rader, skapa nya kolumner, aggregeringar med hjälp av groupby och kopplingar mellan DataFrames. I många fall är formuleringen nästan identisk med SQL-delen, men i Pandas-format.

Det är inte vanligt att man måste bygga komplexa modeller från grunden i ett analytikertest, även om de kan värdesätta din förmåga att använda scikit-learn för att träna en grundläggande modell och framför allt din kunskap om de grundläggande mätvärdena för att mäta dess prestanda.

Grundläggande pandors operationer som du bör behärska

För att framgångsrikt slutföra en Python-dataövning måste du vara skicklig i grundläggande DataFrames-operationer. Det första steget är vanligtvis att ladda en fil med hjälp av `read_csv` och utforska dess struktur med metoder som `head()`, `info()` eller `describe()`.

Delen om att rensa upp nullvärden brukar också dyka upp: att räkna hur många nullvärden det finns per kolumn med isnull().sum(), avgöra om man ska ta bort hela rader eller kolumner med dropna() eller fylla saknade med fillna(), till exempel med hjälp av medelvärdet eller medianen för kolumnen.

När det gäller filter kommer du att bli ombedd att bygga villkor på numeriska eller kategoriska kolumner, något som att välja försäljningar över ett visst belopp eller rader som uppfyller flera villkor kombinerat med & och |. Nyckeln är att veta hur man skriver df utan att tveka.

Förklaringen av `groupby` i pandas ingår nästan alltid, eftersom det är den direkta motsvarigheten till SQL:s `GROUP BY`. Du grupperar efter en eller flera kolumner och använder sedan aggregeringar som `sum`, `mean`, `count`, etc. Syntaxen `groupby('column').agg()` är viktig.

Kopplar samman och sammanfogar mellan DataFrames

Precis som det är viktigt att behärska JOINs i SQL, är det obligatoriskt att behärska pd.merge i pandas . Företag vill se om du vet hur man kopplar ihop dataset som delar en nyckel, till exempel en tabell över användare med en annan tabell över händelser eller inköp.

Funktionen merge tar de två DataFrames som ska sammanfogas, nyckelkolumnen (on) och kopplingstypen (how), som kan vara 'left', 'right', 'inner' eller 'outer', precis som i SQL. Vid dataanalys används left join främst för att bevara huvuddatasetet och lägga till attribut eller mätvärden från sekundära tabeller.

  Labyrintgeneratorer: En komplett guide till att skapa, anpassa och ladda ner

I en intervju är det en bra idé att nämna detaljer som vad som händer när det finns duplicerade nycklar på endera sidan eller hur man hanterar kolumnnamnskonflikter med parametersuffix. Detta förmedlar en högre grad av mognad.

Typiska, mer teoretiska Python-frågor

Utöver pandor innehåller många intervjuer ett kort block med allmänna Python-frågor för att kontrollera din förståelse av språket. Dessa är vanligtvis korta frågor om funktioner, minne, datatyper eller små syntaxdelar.

Bland de ämnen som återkommer upprepade gånger finns automatisk minneshantering i Python, baserad på en privat heap som användaren inte har direkt åtkomst till, och en garbage collector som ansvarar för att frigöra objekt som inte längre har referenser.

Det är också vanligt att bli ombedd att jämföra Python med Java , inte för att utse en vinnare, utan för att visa att man förstår skillnaderna: Python är mer dynamiskt, med en mer koncis syntax, perfekt för prototyputveckling och datavetenskap, medan Java tenderar att dominera i mer företags- och högpresterande ekosystem.

Andra typiska frågor kretsar kring lambda-uttryck (anonyma funktioner för enkla operationer), pickling/unpickling-processer för att serialisera objekt till byte och hämta dem, eller skillnaden mellan listor och tupler, där de förra är föränderliga och definieras med hakparenteser och de senare är oföränderliga och definieras med parenteser.

Fler viktiga Python-koncept i intervjuer

Det är vanligt att man får frågan hur man tar bort eller kopierar ett objekt i Python. Vanligtvis räcker det med att förklara att man kan använda `del`-satsen för att ta bort en referens, och att ytliga kopior görs med `copy.copy()`, medan djupa kopior kräver `copy.deepcopy()`.

Ett annat koncept som kan förekomma, särskilt i fler backend-profiler, är den så kallade dogpile-effekten , som beskriver ett scenario där många användare eller processer attackerar en resurs (till exempel en webbplats eller cache) samtidigt, vilket mättar systemet.

Relaterat till ekosystemet kan du också stöta på frågor om databaser som kan användas med Python . Det mest förnuftiga tillvägagångssättet är att nämna några populära databaser som MySQL, PostgreSQL, SQLite, MongoDB och Oracle, och notera att Python generellt integreras väl med en mängd olika relationella och NoSQL-databasmotorer.

Slutligen uppstår ofta enklare frågor, som hur man sorterar en ordlista med hjälp av sorterade objekt, vad ett namnutrymme är och vad det används till (associera namn med objekt i olika omfång), eller hur man startar en delprocess med hjälp av delprocessmodulen med funktioner som run() eller Popen().

Mätvärden för att utvärdera modeller i Python: det minsta du bör känna till

Även om många analytikerpositioner inte kräver att du utformar djupinlärningsarkitekturer, är det vanligt att vara bekant med grundläggande mätvärden för att utvärdera klassificeringsmodeller , särskilt om rollen involverar dataprodukter, kampanjattribution eller bedrägeriupptäckt inom adtech.

Utgångspunkten är förvirringsmatrisen , som sammanfattar framgångarna och misslyckandena för en binär eller multiklassificerare. I det binära fallet är den uppdelad i sanna positiva (TP), sanna negativa (TN), falska positiva (FP) och falska negativa (FN). En grundlig förståelse av dessa fyra kategorier är nyckeln.

Från matrisen härleds mätvärden som noggrannhet , som mäter andelen korrekta förutsägelser av totalen; precision (TP/positiva förutsägelser); och återkallelse eller känslighet (TP/faktiska positiva). Dessa två sistnämnda är särskilt viktiga när klasserna är obalanserade.

F1 -poängen kombinerar noggrannhet och återkallelse med hjälp av det harmoniska medelvärdet, vilket bestraffar särskilt låga poäng för båda. Det är ett vanligt mått i scenarier där både falska positiva och falska negativa resultat är kostsamma, såsom bedrägeriupptäckt, lead scoring eller sjukdomsdetektering.

Andra avancerade mätvärden: ROC-AUC, logloss, Jaccard med mera

För positioner med en starkare komponent inom data science eller marknadsföringsanalys tittar företag på om du behärskar mer avancerade mätvärden som ROC-AUC , vilket mäter arean under ROC-kurvan och återspeglar en modells förmåga att separera klasser.

ROC-kurvan representerar förhållandet mellan den sanna positiva frekvensen (återkallelse) och den falska positiva frekvensen (1 – specificitet) för olika beslutströsklar. En slumpmässig modell skulle hamna på en diagonal linje, medan en bra modell skulle hamna närmare det övre vänstra hörnet. Ju större arean under kurvan är, desto bättre är urskiljningsförmågan.

Ett annat vanligt mått är logaritmisk förlust (logloss) , som bedömer kvaliteten på förutspådda sannolikheter, vilket kraftigt bestraffar överdriven tilltro och fel. En perfekt modell skulle ha en logaritmisk förlust på 0, och generellt sett, ju lägre logaritmisk förlust, desto bättre.

De kan också fråga dig om Jaccard-indexet , som mäter likheten mellan två mängder som storleken på skärningspunkten dividerat med storleken på unionen. Det används bland annat för att utvärdera klassificerare, segmentering och rekommendationssystem.

I vissa sammanhang nämns öknings- och lyftdiagram , vilka visar hur stor andel av målgrupperna du når med hjälp av endast en del av populationen (till exempel de 20 % bästa användarna som rankas av din modell). Detta används ofta inom marknadsföring för att avgöra vem man ska rikta sig till först.

Kolmogorov-Smirnov, Gini-koefficient och djupgående utvärdering

Om företaget är starkt fokuserat på poängsättning eller riskmodeller kan mätvärden som Kolmogorov-Smirnov (KS)-statistik förekomma , vilket mäter graden av separation mellan fördelningarna av positiva och negativa poäng.

Ett KS-värde nära 100 (i procent) indikerar att modellen separerar de två populationerna nästan perfekt; ett värde nära 0 innebär att modellen inte skiljer bättre än slumpen. I praktiken faller verkliga modeller inom mellanliggande värden och jämförs med varandra för att välja det bästa.

  SOLID i programmering: definitiv guide med exempel och praktiska tips

Gini -koefficienten är ett annat mått som härleds från ROC-AUC med formeln Gini = 2 × AUC – 1. Mycket populär inom kredit och försäkring, tolkas den också som ett mått på ojämlikhet: ju högre Gini, desto större är modellens förmåga att koncentrera verkligt positiva värden vid högre poäng.

I mer avancerade intervjuer kan du bli ombedd att förklara hur dessa mätvärden implementeras i Python med hjälp av scikit-learn (t.ex. confusion_matrix, accuracy_score, roc_auc_score, f1_score…) och att kommentera när du skulle använda var och en beroende på problemets art och klassobalansen.

Hur du strukturerar dina svar under den tekniska intervjun

Utöver den kod du skriver lägger intervjuare stor vikt vid hur du tänker och hur du förklarar dig själv . Ett dåligt strukturerat svar kan få dig att verka lägre betygsatt än du egentligen är, även om du vet rätt lösning.

Ett mycket användbart tillvägagångssätt för att besvara tekniska frågor är följande: först, förklara konceptet i en mening , ge sedan ett konkret exempel (helst kopplat till ett av dina egna projekt), och, om relevant, nämn alternativ eller nyanser . Detta fungerar lika bra för SQL, Python eller modellmått.

Om du till exempel blir frågad vad en CTE är till för, kan du säga att det är en namngiven tillfällig delfråga som förbättrar läsbarheten hos komplexa frågor, tillägga att du använder den när du behöver återanvända ett mellanresultat flera gånger, och nämna att den i vissa fall kan ersättas av kapslade delfrågor även om det är mindre tydligt.

Att tänka högt är också viktigt . Om du kör fast, var inte tyst: verbalisera vad du försöker göra, vilken information du missar, vilka antaganden du gör. Detta hjälper intervjuaren att se din tankeprocess och ger dig ibland till och med ledtrådar eller förtydliganden som gör det lättare att gå vidare.

Vanligaste misstagen i intervjuer med tekniska data

Många kandidater blir uteslutna inte för att de saknar tillräckliga SQL- eller Python-kunskaper, utan på grund av en kombination av dålig förberedelse och kommunikationsfel . Det är avgörande att vara fullt medveten om vanliga fallgropar för att undvika dem.

Det första är att memorera utan att förstå . Att känna till syntaxen för RANK eller en lambdafunktion är inte särskilt användbart om du inte sedan kan förklara i vilka fall du skulle använda dessa verktyg eller varför de är att föredra framför andra alternativ.

Ett annat mycket vanligt misstag är att man inte bedömer datakvaliteten i övningarna. Om du får en datauppsättning är det lämpligt att kontrollera om det finns nollor, dubbletter eller extremvärden som kan snedvrida analysen innan du börjar aggregera. Detta visar på gott omdöme och praktisk erfarenhet.

Det är också mycket skadligt att undvika att ställa förtydligande frågor . I ett affärscase om reklamkampanjer är det till exempel helt logiskt att fråga om säsongsvariationer, måltidsramen, om mätvärden eftersträvas per användare eller per visning, och så vidare. Att förbli tyst och göra antaganden leder ofta till lösningar som är dåligt i linje med vad intervjuaren hade i åtanke.

Slutligen, undvik "överkodning"-metoden: skapa onödigt komplexa lösningar när frågan eller skriptet skulle kunna vara enklare. I verkliga arbetsmiljöer värderas tydlighet, underhållbarhet och effektivitet , inte pusselliknande lösningar.

Intensiv förberedelseplan på två veckor

Om du har begränsad tid före intervjun kan du följa en koncentrerad plan som täcker de tre huvudområdena: SQL, Python med Pandas och praktisk tillämpning. Du kommer inte att utföra underverk på 14 dagar, men du kan komma fram med en gedigen kunskapsnivå och rimligt självförtroende.

Under de första dagarna är det en bra idé att fokusera på SQL för nybörjare till medelnivå : gå igenom grundläggande syntax, JOINs, GROUP BY, delfrågor och de vanligaste fönsterfunktionerna. Ägna tid åt att både läsa exempel och skriva dina egna frågor.

I en andra fas, fokusera på pandor : datainläsning, rensning, filtrering, groupby, sammanslagningar och lite snabb visualisering med matplotlib eller seaborn. Du behöver inte bygga komplexa dashboards, men du behöver kunna replikera samma transformationer i Python som du skulle utföra i SQL.

Avsätt sedan flera dagar för att göra praktiska övningar på plattformar som HackerRank eller tekniska intervjudatabaser. Målet är att vänja sig vid formatet, tidsbegränsningarna och pressen att skriva kod i en kontrollerad miljö.

Slutligen, prova en eller två fullständiga intervjusimuleringar : ta en offentlig datauppsättning, ställ rimliga affärsfrågor, lös dem med SQL eller Python och förklara hela ditt resonemang högt, från den inledande utforskningen till de slutliga slutsatserna.

Med en bra kombination av teoretisk repetition, guidad övning och realistiska övningar kommer du att anlända till intervjudagen med en solid grund i SQL, Python för dataanalys och modellmätvärden på mellannivå – vilket är precis vad de flesta företag inom adtech och dataanalys förväntar sig att se.