SQL QuestSQL Interview Questions › Subqueries & CTEs

Above-Department-Average Earners

MediumFreeQuerying BasicsSubqueries & CTEs

Comp benchmarking classic. Find every employee whose salary is higher than the average salary of their own department — not the company-wide average. The same dollar figure can be "above average" in one department and "below average" in another, which is exactly the point of the comparison.

Show name, department, salary, dept_avg (rounded to nearest dollar). Order by salary descending, then name ascending.

This is a correlated subquery: the inner query references the outer table's department, so it has to be re-evaluated for every row. Beginners try to write WHERE salary > AVG(salary) directly — that fails because AVG is an aggregate that needs a GROUP BY scope. The fix is to push the AVG into a subquery that filters to the same department as the outer row.

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: Both rows appear (each above their own dept avg)

Hint

WHERE e1.salary > (SELECT AVG(salary) FROM employees e2 WHERE e2.department = e1.department). Use the same correlated subquery wrapped in ROUND(..., 0) inside SELECT to also display the dept_avg value.

Concepts

SELECT Subquery Correlated Subquery

Practise the topic: SQL practice questions · CTE practice

Related questions

Department Roster with GROUP_CONCATMedium · FreeConsistent Director AnalysisMedium · FreeBelow Department AverageMedium · FreeHighest Total Salary Budget DepartmentMedium · FreeFare Imputation AnalysisMedium · FreeUNION ALL Dedup: Cross-Dataset SearchMedium · 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