Back to Practice
#0360

Top Two Products Per Category

MediumSQL24 min20 XP

Problem

Return category, product, and revenue for the top two products per category.

Why This Matters

SQL interviews usually test whether you can turn a business question into the right rows, grouping level, join type, and edge-case behavior.

Schema

sales(category TEXT, product TEXT, revenue INTEGER)

Examples

Example 1
Inputcategory A has three products
Outputtop two from A, top two from B

ROW_NUMBER restarts inside each category.

Constraints

  • Return only the requested columns.
  • Use deterministic ORDER BY when multiple rows are returned.
  • Assume SQLite-compatible SQL unless the prompt states otherwise.
CodeSQL
Visible browser tests run here when available.
Testcases1 visible / 3 hidden categories
Core SQL case
Inputcategory A has three products
Expected[["A","p1",100],["A","p2",80],["B","q1",60],["B","q2",40]]

ROW_NUMBER restarts inside each category.

Hidden Test Categories
Empty or missing matchesDuplicate rows or tiesNULL values where the pattern commonly breaks