Subqueries in SELECT
A subquery in the SELECT clause can add a calculated value to each row, such as a count, sum, or lookup.
It runs once for each row in the outer query and must return exactly one value (a scalar).
Syntax
Subqueries in the SELECT clause are written like this:
Subquery in SELECT
SELECT column1, (SELECT some_value FROM another_table WHERE ...) AS new_column FROM main_table;
Example: Total Courses Per User
The following query returns the number of courses each user selected.
Subquery in SELECT clause
SELECT u.name, ( SELECT COUNT(*) FROM user_courses uc WHERE uc.user_id = u.user_id ) AS course_count FROM users u;
Output:
| name | course_count |
|---|---|
| Sofia | 2 |
| Ethan | 1 |
| Aisha | 2 |
| Noah | 1 |
| Liam | 3 |
This query counts how many rows each user has in the
user_coursestable.
Why It's Useful
Use subqueries in SELECT when you want to:
- Add extra calculated columns
- Avoid joins for one-off metrics
- Keep reporting logic contained in a single query
Notes
- Make sure each subquery returns just one value (or SQL will error out)
- Useful for quick summaries, though joins are usually more efficient on large datasets
- You can use
COUNT,SUM,AVG, or even nested subqueries
Quiz
0 / 1
A subquery in the SELECT clause can return multiple values for each row.
True
False
Lecture
AI Tutor
Design
Upload
Notes
Favorites
Help
Code Editor
Run
Generate
Tables
Execution Result