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
ExperiencesCoaching
New
Practice
Mock InterviewsTimed interview simulations with feedbackSuccess 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
Get started
Tabular QC for TSV Data
00:00
5 left

Tabular QC for TSV Data

MediumSQL · PostgreSQL

Problem

After describing a TSV file, what quality control measures would you use to ensure the table is formatted correctly?

Write a SQL query that audits each imported row against the allowed assay codes and formatting rules for identifiers, calendar dates, numeric results, QC flags, and duplicate sample IDs.

Output

  1. One row per imported TSV row, ordered by source_row ascending
  2. Columns: source_row, sample_id, issue_count, qc_status, and issues
  3. Include every imported row, including rows with invalid or NULL values
  4. qc_status must be PASS only when no issues are found; NULL values in validated fields are treated as issues

Output details

  • Require sample_id to be non-NULL, nonblank, and match S- followed by exactly four digits.
  • Require collection_date to match YYYY-MM-DD and represent a valid calendar date, including leap-year February rules.
  • Require result to be non-NULL and match an optional minus sign, digits, and optionally a decimal point followed by digits.
  • Accept only PASS or FAIL for qc_flag, treating NULL and all other values as invalid.
  • Count duplicates only for valid sample_id values, and flag every row sharing a duplicated valid identifier.
  • Format issues in validation order with comma-space separators and exact labels, returning an empty string when no issues exist.

Schema

tsv_import
ColumnTypeDescription
source_rowPKINTOriginal row number in the TSV file
sample_idVARCHAR(20)Imported sample identifier
assay_codeVARCHAR(20)Imported assay code
collection_date_textVARCHAR(10)Collection date as imported text
result_textVARCHAR(30)Assay result as imported text
qc_flagVARCHAR(10)Imported quality-control flag
valid_assays
ColumnTypeDescription
assay_codePKVARCHAR(20)Approved assay code
assay_nameVARCHAR(80)Human-readable assay name
Tablestsv_importvalid_assays
Interviewer

Whenever you're ready, walk me through your approach or go straight to the code. The requirements and the two tables are in the Question tab.

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.