Bird
0
0

You want to calculate a 5-day moving average of sales but only for each product category separately. Which window function clause correctly achieves this?

hard📝 Application Q8 of 15
SQL - Advanced Window Functions
You want to calculate a 5-day moving average of sales but only for each product category separately. Which window function clause correctly achieves this?
AAVG(sales) OVER (PARTITION BY sale_date ORDER BY category ROWS BETWEEN 4 PRECEDING AND CURRENT ROW)
BAVG(sales) OVER (ORDER BY sale_date ROWS BETWEEN 4 PRECEDING AND CURRENT ROW)
CAVG(sales) PARTITION BY category ORDER BY sale_date ROWS BETWEEN 4 PRECEDING AND CURRENT ROW
DAVG(sales) OVER (PARTITION BY category ORDER BY sale_date ROWS BETWEEN 4 PRECEDING AND CURRENT ROW)
Step-by-Step Solution
Solution:
  1. Step 1: Understand partitioning by category

    To calculate moving average per category, use PARTITION BY category.
  2. Step 2: Define order and frame

    Order by sale_date and frame as 4 preceding rows plus current row for 5-day window.
  3. Step 3: Match with options

    AVG(sales) OVER (PARTITION BY category ORDER BY sale_date ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) correctly uses PARTITION BY category, ORDER BY sale_date, and ROWS BETWEEN 4 PRECEDING AND CURRENT ROW.
  4. Final Answer:

    AVG(sales) OVER (PARTITION BY category ORDER BY sale_date ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) -> Option D
  5. Quick Check:

    Partition by category + 5-day frame = AVG(sales) OVER (PARTITION BY category ORDER BY sale_date ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) [OK]
Quick Trick: Use PARTITION BY to separate groups in window functions [OK]
Common Mistakes:
  • Omitting PARTITION BY for per-group calculation
  • Swapping ORDER BY columns
  • Incorrect frame boundaries

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More SQL Quizzes