ReadineerDiagnostic report

SQL & Querying Diagnostic

Target band
Working evidence
Generated
Jul 5, 2026
Assessment ID
SQL-7N4E9
Rubric
v1.3
Coverage
5 of 18 patterns
Last verification
Private — visible only to you

This report evaluates the work submitted in this assessment. It does not evaluate your complete engineering ability or predict hiring outcomes.

How to interpret this report

What this report says

Working evidence across 1 assessed pattern. 4 priority gaps remain.

Your work demonstrates Joins I — semantics. The highest-priority gaps are Filtering & predicates, Aggregation & GROUP BY, Windows II — frames & running and Time & dates. 13 patterns have not yet been assessed and do not affect this conclusion.

Current evidence

Demonstrated strengths

Joins I — semantics

Priority gaps

Filtering & predicates

Aggregation & GROUP BY

Windows II — frames & running

Time & dates

Coverage limitations

13 SQL patterns have not yet been assessed

What to do next

  1. 1Practice Filtering & predicates on a task where the trap can bite.
  2. 2Reassess Filtering & predicates once you've closed it.
  3. 3Assess an untested pattern to widen coverage.
1demonstrated at target level
4open findings
0reopened finding
0historically resolved
13not assessed

These counts are separate facts — they do not combine into a single score.

Your next priorities

Ranked by expected impact on your target evidence band.

PRIORITY 1 · LINKED TO F-01

The query returns nothing

A predicate on a nullable column drops every row where the value is NULL, because NULL fails an equality test rather than matching it.

Practice this gap

PRIORITY 2 · LINKED TO F-02

Paid revenue per user reads low

Aggregates ignore NULLs.

Practice this gap

PRIORITY 3 · LINKED TO F-03

Rolling 7-day revenue per user returns nothing for the last day

ROWS counts physical rows; RANGE counts a value interval.

Practice this gap

PRIORITY 4 · LINKED TO F-04

Time from first view to first checkout is off by a day

Date math at boundaries is a common trap: BETWEEN d1 AND d2 stops at d2 00:00, dropping everything later that day.

Practice this gap

PRIORITY 5 · LINKED TO F-05

Spot the bug: a stray ELSE turns a count into a row count

COUNT() counts any non-NULL value — including 0.

Practice this gap

PRIORITY 6 · COVERAGE

Assess an untested SQL pattern

Complete a focused task to create evidence in a currently unassessed area.

Choose next assessment

Evidence across assessed SQL patterns

This view separates demonstrated evidence, open findings, resolved history, and areas that were not assessed.

How to read this table — levels, statuses, confidence, priority

Evidence level

Foundational → Working → Advanced. How much the submitted work demonstrates, shown as filled segments.

Assessment status

Not assessed: the assessment did not request this skill. Gap found: the response did not support the conclusion. Reopened: a previously resolved finding appeared again. Demonstrated: met the stated criteria.

Confidence

High, Medium, or Low — how stable the conclusion is, given task count and reviewer agreement.

Priority

What to act on: High, Maintain, Assess next, or Low. Priority is advice, not a grade.

PATTERNEVIDENCE LEVELSTATUSCONF.PRIORITYLAST CHECKED

FOUNDATIONS

Filtering & predicates Gap foundHighJul 5, 2026
NULL & three-valued logic Not assessedAssess next
Sorting & limiting Not assessedAssess next
Aggregation & GROUP BY Gap foundHighJul 5, 2026

COMBINING & SHAPING

Joins I — semanticsWorking DemonstratedHighAssess nextJul 5, 2026
Joins II — fan-out & grain Not assessedAssess next
Set operations Not assessedAssess next
Subqueries & CTEs Not assessedAssess next
Conditional logic & CASE Not assessedAssess next

WINDOWS & TIME

Windows I — ranking & offsets Not assessedAssess next
Windows II — frames & running Gap foundHighJul 5, 2026
Time & dates Gap foundHighJul 5, 2026

SEQUENCE & DEDUP

Deduplication & latest-record Not assessedAssess next
Gaps, islands & sessionization Not assessedAssess next

RESHAPE & MODELING

Reshaping — pivot & unpivot Not assessedAssess next
Data modification & MERGE Not assessedAssess next

SCALE & MODERN

Reading performance & plans Not assessedAssess next
Semi-structured & modern warehouse SQL Not assessedAssess next

Priority findings

These findings are linked to specific evidence in the submitted work. Expand a finding to inspect the reasoning, counterexample, and what would resolve it.

Priority 1 Gap foundHigh confidenceF-01 · last checked Jul 5, 2026The query returns nothingTask sql-filter-scope · Filtering & predicates

FINDING

The WHERE clause filters on a column that is NULL for the rows you wanted, so the result is silently empty — no error, no warning.

WHY IT MATTERS

A predicate on a nullable column drops every row where the value is NULL, because NULL fails an equality test rather than matching it.

EVIDENCE — SUBMITTED SQL

task sql-filter-scope
SELECT order_id, amount
FROM orders
WHERE region = 'APAC';

SUGGESTED FIX

SELECT order_id, amount
FROM orders
WHERE region = 'APAC' OR region IS NULL;

WHAT WOULD RESOLVE THIS

Rewrite the predicate to handle NULLs explicitly (IS NULL / COALESCE) and confirm the query returns the expected rows on a task where the trap can bite.

CONFIDENCE — HIGH

How stable this conclusion is, given the number of tasks that exercised this pattern and the consistency of the result.

Priority 2 Gap foundHigh confidenceF-02 · last checked Jul 5, 2026Paid revenue per user reads lowTask sql-agg-revenue · Aggregation & GROUP BY

FINDING

COUNT and SUM run before the rows with NULL amounts are handled, so the per-user total skips the blanks and reports less revenue than actually occurred.

WHY IT MATTERS

Aggregates ignore NULLs. Without COALESCE, a missing value quietly lowers the total instead of being treated as zero.

WHAT WOULD RESOLVE THIS

Coalesce the amount to 0 before aggregating, then reassess Aggregation & GROUP BY once the totals reconcile.

CONFIDENCE — HIGH

How stable this conclusion is, given the number of tasks that exercised this pattern and the consistency of the result.

Priority 3 Gap foundHigh confidenceF-03 · last checked Jul 5, 2026Rolling 7-day revenue per user returns nothing for the last dayTask sql-window-rolling · Windows II — frames & running

FINDING

The window uses a ROWS frame, which counts rows rather than calendar days, so days with no orders are skipped and the final day drops out.

WHY IT MATTERS

ROWS counts physical rows; RANGE counts a value interval. For a calendar window you need RANGE with an explicit interval so gaps are still included.

EVIDENCE — SUBMITTED SQL

task sql-window-rolling
SUM(amount) OVER (
  PARTITION BY user_id ORDER BY day
  ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)

SUGGESTED FIX

SUM(amount) OVER (
  PARTITION BY user_id ORDER BY day
  RANGE BETWEEN INTERVAL '6' DAY PRECEDING AND CURRENT ROW)

WHAT WOULD RESOLVE THIS

Switch the frame to RANGE with an explicit day interval and verify the last day appears.

CONFIDENCE — HIGH

How stable this conclusion is, given the number of tasks that exercised this pattern and the consistency of the result.

Priority 4 Gap foundHigh confidenceF-04 · last checked Jul 5, 2026Time from first view to first checkout is off by a dayTask sql-time-checkout · Time & dates

FINDING

A BETWEEN on a date boundary excludes the last day's afternoon, because the upper bound resolves to midnight rather than end-of-day.

WHY IT MATTERS

Date math at boundaries is a common trap: BETWEEN d1 AND d2 stops at d2 00:00, dropping everything later that day.

WHAT WOULD RESOLVE THIS

Use a half-open interval (>= d1 AND < d2 + 1 day) and reassess Time & dates.

CONFIDENCE — HIGH

How stable this conclusion is, given the number of tasks that exercised this pattern and the consistency of the result.

Priority 5 Gap foundHigh confidenceF-05 · last checked Jul 5, 2026Spot the bug: a stray ELSE turns a count into a row countTask sql-agg-elsecount · Aggregation & GROUP BY

FINDING

A CASE inside COUNT falls through to ELSE 0, so every row is counted instead of only the matching ones.

WHY IT MATTERS

COUNT() counts any non-NULL value — including 0. Use SUM(CASE WHEN … THEN 1 END) or drop the ELSE so non-matches stay NULL.

WHAT WOULD RESOLVE THIS

Remove the ELSE branch (or switch to SUM) and confirm the conditional count matches a hand check.

CONFIDENCE — HIGH

How stable this conclusion is, given the number of tasks that exercised this pattern and the consistency of the result.

Verification history — every change, dated

Jul 5, 2026

Gap found. Filtering & predicates — junior

Jul 5, 2026

Gap found. Aggregation & GROUP BY — junior

Jul 5, 2026

Gap found. Windows II — frames & running — junior

Jul 5, 2026

Gap found. Time & dates — junior

Jul 5, 2026

Assessed. Joins I — semantics — junior

How this report was produced

Rubric-based evaluation

Every conclusion maps to a rubric criterion. Criterion references appear on each finding.

Evidence and confidence checks

A skill is marked insufficient evidence or not assessed when the submission does not support a reliable conclusion. Confidence explains stability, not importance.

Verifiable record

Evidence bands change only with dated evidence — in both directions. Nothing is deleted; a reopen keeps the original claim.

Challenge process

If you believe evidence was missed, reassess the pattern — the outcome is dated in the history.

This report is a learning diagnostic. It is not a hiring certification, and it does not predict job performance.