**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.
This answer is partially locked
Unlock the full expert answer with code examples and trade-offs
Practice real interviews with AI feedback, track progress, and get interview-ready faster.
Pro starts at $19/mo - cancel anytime
Trusted by 10,000+ aspiring data engineers
According to DataEngPrep.tech, this is one of the most frequently asked SQL interview questions, reported at 3 companies. DataEngPrep.tech maintains a curated database of 1,863+ real data engineering interview questions across 7 categories, verified by industry professionals.