Business Intelligence Path · Mission 19 of 25Hard

Correlated check: reps beating their own average

Use correlated subqueries to compare each row against its own group's aggregate

Back to Business Intelligence

The Brief

Sandra SanchezVP of Salessales-ops

For each sale by an active sales rep, I want to know if that individual sale's revenue was above that rep's own average sale revenue. Show the sale_id, employee first and last name, revenue, that rep's average revenue, and a flag column: 'Above Average' or 'Below Average'. Only include active Sales reps.

You'll practice

Correlated subqueries

Tables available

fact_salesdim_employees

Hints (3)

Each hint you reveal reduces the XP you can earn. Try the query first.

Hint 1

Use a correlated subquery in SELECT: (SELECT AVG(s2.revenue) FROM fact_sales s2 WHERE s2.employee_id = s.employee_id) to get each rep's average

Hint 2

Use CASE WHEN to compare sale revenue to the correlated average and produce the flag

Hint 3

Join fact_sales to dim_employees, filter to active Sales department