Interstellar Spending Sprees:Measure Customer Spending Patterns with Rolling Three-Order Averages
Intermediate
Track rolling 3-order spending averages to find cosmic big spenders.
Xorthax noticed some customers go on interstellar spending sprees. Help him analyze customer behavior by calculating the rolling 3-order average of total amount spent for each customer, ordered by order date.
Write Your Query
Answer:
select customerid,
orderid,
orderdate,
totalamount,
round((avg(totalamount) over (partition by customerid
order by orderdate rows between 2 preceding and current row))::numeric, 2) as rollingavgspend
from orders;
Explanation:
This mirrors identifying customers’ short-term spending bursts, useful for loyalty programs or sales insights.
You will practice rolling average calculations and analyzing sequential purchase data over defined order windows.
This problem is labeled as Intermediate. It assumes you’ve written a few window function queries before, but you don’t need to be an expert. Use the hints and explanations if you get stuck — they’re there to help you think through the logic.
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.