Reviewed by Aditya Kumar · Last reviewed 2026-03-24
**Architectural Logic**: MERGE (upsert) performs INSERT, UPDATE, DELETE in one atomic statement based on a join condition. Syntax: MERGE INTO target USING source ON (key) WHEN MATCHED THEN UPDATE ... WHEN NOT MATCHED THEN INSERT ... [WHEN NOT MATCHED BY SOURCE THEN DELETE]....
Red Flag: MERGE without indexed join key on large tables—full table scans. Pro-Move: 'We partition target by merge key and use MERGE for idempotent hourly loads; we monitor for lock contention.'
This medium-level SQL question appears frequently in data engineering interviews at companies like Aarete, Dunnhumby, Incedo. While less common, it tests deeper understanding that distinguishes strong candidates. Mastering the underlying concepts (bigquery, join, partition) will help you answer variations of this question confidently.
Break this problem into components. Identify the core trade-offs involved, then walk the interviewer through your reasoning step by step. Demonstrate awareness of edge cases and production considerations - this is what separates good answers from great ones.
Architectural Logic: MERGE (upsert) performs INSERT, UPDATE, DELETE in one atomic statement based on a join condition. Syntax: MERGE INTO target USING source ON (key) WHEN MATCHED THEN UPDATE ... WHEN NOT MATCHED THEN INSERT ... [WHEN NOT MATCHED BY SOURCE THEN DELETE]. Why: Single pass over target and source; avoids read-modify-write race conditions; efficient for SCD Type 1/2, incremental loads, CDC sync. Scalability: Join key should be indexed; large source scans can lock target. BigQuery MERGE rewrites matched partitions. Cost: Cheaper than separate INSERT + UPDATE + DELETE; ensures transactional consistency. Use for idempotent pipelines; ensure join keys are indexed.
Red Flag: MERGE without indexed join key on large tables—full table scans. Pro-Move: 'We partition target by merge key and use MERGE for idempotent hourly loads; we monitor for lock contention.'
Some links below are affiliate links. If you buy through them we may earn a small commission at no extra cost to you — it helps keep DataEngPrep free.
According to DataEngPrep.tech, this is one of the most frequently asked SQL interview questions, reported at 3 companies. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.