lesson 09 Calculations & data quality · beginner
Unique values with DISTINCT
Return one copy of each distinct value.
the idea
DISTINCT removes duplicate output rows. It applies to the whole set of selected columns, not just the first column. NULL is kept once.
tables in this lesson
The challenges use this data. Each column shows its type underneath; → marks a link to another table.
customers4 columns · 8 rows
| idinteger · key | nametext | citytext | joined_attext |
|---|---|---|---|
| 1 | Alice | Chicago | 2024-01-10 |
| 2 | Ben | Austin | 2024-02-12 |
| 3 | Cara | Seattle | 2024-03-05 |
| 4 | Dev | Chicago | 2024-04-20 |
| 5 | Elena | NULL | 2024-05-01 |
showing 5 of 8 rows
products4 columns · 6 rows
| idinteger · key | nametext | categorytext | pricereal |
|---|---|---|---|
| 1 | Notebook | Stationery | 12 |
| 2 | Desk lamp | Home | 45 |
| 3 | Keyboard | Tech | 80 |
| 4 | Pen set | Stationery | 8 |
| 5 | Headphones | Tech | 120 |
showing 5 of 6 rows
example
The idea in one query. Press Run to see what it returns; running examples never affects your progress.
SELECT DISTINCT city FROM customers;
Watch for: Adding id makes every row unique, so it defeats this task.
build it step by step
Each step changes one thing. Run them in order and watch the result change.
See duplicate cities first. Many customers share a city. The raw list repeats Chicago and Austin. DISTINCT will keep one row per distinct value.
step-1.sqlSELECT city FROM customers ORDER BY city;
Keep each city once. DISTINCT removes duplicate output rows across the selected columns. NULL is kept once if it appears.
step-2.sqlSELECT DISTINCT city FROM customers;