SQL QuestSQL Interview Questions › Subqueries & CTEs

A Subquery That Returns One Value

EasyFreeQuerying BasicsSubqueries & CTEs

HR wants everyone paid above the company average.

Show name, department, salary for employees earning more than the average salary. Order by salary descending, then name.

The new idea: you can put a whole SELECT inside your WHERE. (SELECT AVG(salary) FROM employees) runs first, produces a single number, and your comparison then works against that number just as if you had typed it.

Why not compute the average yourself and paste it in? Because the moment someone gets a raise your number is wrong and the query still runs, cheerfully returning the wrong answer. The subquery recomputes every time.

Solve it in the browser editor →

Runs on SQLite in your browser, graded against the expected result, no signup. A wrong answer gets a diagnosis, not just "incorrect".

Schema

employees

emp_idnamedepartmentpositionsalaryhire_datemanager_idperformance_rating
1Alice JohnsonEngineeringSenior Developer950002019-03-1554.5
2Bob SmithEngineeringDeveloper750002020-06-0113.8
3Carol WilliamsMarketingMarketing Manager850002018-09-20NULL4.2

Expected output: 22 rows — everyone above 72,760

Hint

The hint for this one spells out most of the query, so it stays in the editor. Reach for SELECT, Subquery, WHERE, and open the hint there if you stall.

Concepts

SELECT Subquery WHERE

Practise the topic: SQL practice questions · CTE practice

In these company practice sets

Goldman Sachs

A SQL Quest challenge matched to patterns reported for these companies — not a question any of them has published.

Related questions

A Subquery That Returns a Set (IN)Easy · FreeGive a Query a Name (WITH)Easy · FreeMovies Rated Above the AverageEasy · FreeEvery Film by a Director Who Once Hit 8.5Easy · FreeFilter on an Average You Just ComputedEasy · FreeBetter Than Its Own GenreEasy · Free

Where would this cost you points in an interview?

Ten questions, no signup: a Skillmap across nine SQL skills and the one to fix first.

Take the readiness test