Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Ensuring Integrity Across Data Sources

Easy
SQL & Data ManipulationJoinsData WranglingCase When
Asked 2w ago|
Intermountain Health
Intermountain Health
Asked 34 times

Problem

Context

Teams often combine data from application databases, vendor feeds, and event logs into a single reporting layer. If the integration logic is weak, duplicates, missing matches, inconsistent formats, and incorrect aggregates can quickly make downstream analysis unreliable.

Core question

What techniques would you use to ensure data integrity when combining multiple data sources in SQL? In your answer, explain how you would validate join keys, handle duplicates, standardize data types and formats, manage NULLs, and verify that row counts and aggregates remain correct after combining data.

Scope guidance

Keep the discussion practical and SQL-focused. The interviewer is not looking for a full data platform design; they want to hear the core checks, query patterns, and validation habits you would use before and after merging datasets in PostgreSQL.

Key Concepts

Key validation before joins

Before combining tables, verify that the join columns are complete, standardized, and unique at the expected grain. If keys are duplicated or formatted inconsistently, even a correct JOIN can produce incorrect row multiplication or missed matches.

SELECT customer_id, COUNT(*) AS row_count
FROM source_a
GROUP BY customer_id
HAVING COUNT(*) > 1;

Deduplication at the right grain

When multiple sources contain repeated records, define the business grain first, such as one row per order or one row per customer per day. Then remove duplicates explicitly instead of assuming source data is already clean.

SELECT DISTINCT order_id, customer_id, order_date
FROM source_orders;

Standardizing data types and formats

Data from different systems may store the same field differently, such as text versus integer IDs or inconsistent date formats. Converting values to a common type and format before combining them prevents silent mismatches and comparison errors.

SELECT
  CAST(customer_id AS INT) AS customer_id,
  TO_DATE(order_date_text, 'YYYY-MM-DD') AS order_date
FROM raw_feed;

NULL and unmatched-row handling

Missing values can affect joins, filters, and aggregates. You should decide whether NULL means unknown, not applicable, or missing data, and use LEFT JOIN, COALESCE, and explicit null checks based on the reporting requirement.

SELECT a.customer_id, COALESCE(b.region, 'Unknown') AS region
FROM customers a
LEFT JOIN customer_regions b
  ON a.customer_id = b.customer_id;

Post-merge reconciliation checks

After combining sources, validate the result with row counts, distinct counts, and aggregate comparisons against the original tables. Reconciliation helps catch duplicate joins, dropped records, and incorrect filters early.

SELECT COUNT(*) AS total_rows, COUNT(DISTINCT order_id) AS distinct_orders
FROM merged_orders;

You are practicing as a guest. Sign up free to get your answer graded with AI feedback. Your draft stays right here.

Sign up freeI have an account
Sign up to unlock solutions
Hewlett Packard Enterprise Business Analyst Interview QuestionsChicago Public Schools Business Analyst Interview QuestionsExelixis Interview QuestionsThree Point Turn Interview QuestionsHarvard University Data Analyst Interview Questions
Next questions
Lockheed MartinEnsuring Data Integrity Across SourcesMediumAquent TalentData Integrity Across Disparate SourcesMediumCharles RiverMaintaining Data Integrity Across SourcesMedium
0 / ~200 words