Category Revenue Rankings:Rank Product Categories by Total Sales with Tie-Aware Revenue Comparison
Advanced
Assign fair, tied-aware ranks to product categories based on their total sales.
Xorthax is curious about how different product categories compare in total sales. Write a query to assign a rank to each category based on its total revenue, ensuring that tied categories receive the same rank and that no ranks are skipped.
Write Your Query
Answer:
with categorysales as
(select p.category,
sum(od.quantity * p.price) as totalrevenue
from orderdetails od
join products p on od.productid = p.productid
group by p.category)
select category,
totalrevenue,
dense_rank() over (
order by totalrevenue desc) as rank
from categorysales;
Explanation:
It mirrors retail or e-commerce reporting where categories are ranked by total revenue to identify top-selling groups.
You’ll practice ranking aggregated results while ensuring ties are handled consistently in performance comparisons.
This problem is labeled as Advanced. It’s intended for learners who are already comfortable with common window functions and want to push into more complex analytical patterns. Don’t rush — work through the hints one at a time and study the final query structure carefully.
Yes. Every problem comes with optional hints you can reveal one at a time, plus a fully worked step-by-step solution. You decide how much help you want while practicing.
All problems on PracticeWindowFunctions.com are completely free and can be solved without creating an account. Right now there are over 80 practice problems, with new ones added regularly.