SQL Quest › SQL Interview Questions › Subqueries & CTEs

Simple Subquery: Above Average

MediumFreeQuerying BasicsSubqueries & CTEs

Find employees who earn more than the company-wide average salary. Show name, department, salary, and above_avg_by (how much above the average, rounded to nearest dollar). Sort by above_avg_by descending, then name ascending for ties. The subquery calculates the average once, then the outer query uses it.

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". Free accounts get 10 free challenge solves, and this can be one of them.

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: Alice appears with above_avg_by: $23000

Hint

WHERE salary > (SELECT AVG(salary) FROM employees). The subquery in parentheses runs first and returns a single number.

Concepts

SELECT Subquery WHERE

Practise the topic: SQL practice questions · CTE practice

Read the concept: SQL CTE tutorial

In these company practice sets

Google · Snowflake

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

Related questions

Genres Without BlockbustersMedium · FreeDepartments With High EarnersMedium · FreeHighest Rated by GenreMedium · FreeYour First CTE (WITH Clause)Medium · FreeSubquery in FROM (Derived Table)Medium · FreeAbove-Department-Average EarnersMedium · 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