Window Functions — Practice Questions
74 free PYSPARK and SQL challenges on Window Functions, auto-graded in the browser. Each states the problem, shows the input and expected output, and explains the answer.
- Latest Order Per Customer — Easy · SQL · +50 XP
- 30-Day Rolling Sales Amount — Easy · SQL · +100 XP
- 7-Day Rolling Average Sales — Easy · SQL · +100 XP
- ROW_NUMBER: Assign Unique Rank to Each Employee — Easy · SQL · +50 XP
- ROW_NUMBER: Find the Highest-Paid Employee in Each Department — Easy · SQL · +50 XP
- RANK: Rank Employees by Salary (With Gaps) — Easy · SQL · +50 XP
- RANK vs DENSE_RANK: See the Difference Side by Side — Easy · SQL · +50 XP
- SUM OVER: Calculate Running Total of Daily Sales — Easy · SQL · +50 XP
- SUM OVER: Show Grand Total on Every Row — Easy · SQL · +50 XP
- SUM OVER PARTITION BY: Running Total Per Department — Easy · SQL · +50 XP
- LAG: Show Previous Day's Sales Amount — Easy · SQL · +50 XP
- LAG: Calculate Day-Over-Day Sales Change — Easy · SQL · +50 XP
- LEAD: Show Next Day's Sales Amount — Easy · SQL · +50 XP
- LEAD: Detect Days Where Sales Will Increase Next Day — Easy · SQL · +50 XP
- FIRST_VALUE: Show Highest Salary in Each Department for Every Employee — Easy · SQL · +50 XP
- LAST_VALUE: Show Last Day's Sales on Every Row — Easy · SQL · +50 XP
- ROW_NUMBER: Remove Duplicate Rows and Keep One Per Order — Easy · SQL · +50 XP
- Running Total of Daily Sales — Easy · SQL · +50 XP
- Running Total of Daily Sales (PySpark) — Easy · PYSPARK · +50 XP
- Day-over-Day Change in Sales — Easy · SQL · +50 XP
- Day-over-Day Change in Sales (PySpark) — Easy · PYSPARK · +50 XP
- Maximum Difference Between Consecutive Values — Easy · SQL · +70 XP
- Maximum Difference Between Consecutive Values (PySpark) — Easy · PYSPARK · +70 XP
- Median Salary per Department — Hard · SQL · +180 XP
- Identify 4-Day Consecutive Rolling Sum Increase — Hard · SQL · +250 XP
- Days Where Rolling Sum Increased by 20% vs Previous Day — Hard · SQL · +250 XP
- Rolling Sum Reset on Date Gap — Hard · SQL · +300 XP
- Minimum Days to Reach Rolling Sum of 1000 — Hard · SQL · +300 XP
- 7-Day Rolling Sum by Store and Product — Hard · SQL · +200 XP
- Top 3 Products per Category — Medium · SQL · +100 XP
- Running Total Revenue — Medium · SQL · +100 XP
- 3-Day Rolling Sum of Sales — Medium · SQL · +100 XP
- 7-Day Rolling Purchase Amount by Customer — Medium · SQL · +150 XP
- Rolling Sum with Missing Dates — Medium · SQL · +200 XP
- Rolling 3-Month Revenue — Medium · SQL · +150 XP
- 7-Day Rolling Sales by Product Category — Medium · SQL · +150 XP
- 7-Day Rolling Sales by Store — Medium · SQL · +150 XP
- Rolling 12-Month Revenue per Month — Medium · SQL · +200 XP
- Find Peak Rolling Sales Period — Medium · SQL · +200 XP
- 7-Day Rolling Sales by Region — Medium · SQL · +150 XP
- Compare Current vs Previous 7-Day Rolling Sum — Medium · SQL · +200 XP
- 7-Day Rolling Sales by Product — Medium · SQL · +150 XP
- Month-to-Date (MTD) Rolling Sum — Medium · SQL · +200 XP
- 7-Day Rolling Sum with Increase Flag — Medium · SQL · +200 XP
- 7-Day Rolling Sum by Customer (Partitioned) — Medium · SQL · +150 XP
- 7-Day Rolling Sum of Positive Sales Only — Medium · SQL · +200 XP
- Rolling Sum vs Daily Target (Show Difference) — Medium · SQL · +200 XP
- DENSE_RANK: Rank Employees Without Gaps — Medium · SQL · +50 XP
- Top 3 Highest-Paid Employees in Each Department — Medium · SQL · +100 XP
- Rolling 7-Day Average Daily Sales — Medium · SQL · +50 XP
- Deduplicate: Keep the Latest Record per Customer (PySpark) — Medium · PYSPARK · +75 XP
- 3-Day Moving Average of Sales — Medium · SQL · +100 XP
- 3-Day Moving Average of Sales (PySpark) — Medium · PYSPARK · +100 XP
- Cumulative Sales per Product — Medium · SQL · +100 XP
- Cumulative Sales per Product (PySpark) — Medium · PYSPARK · +100 XP
- Month-over-Month Growth Percentage — Medium · SQL · +100 XP
- Month-over-Month Growth Percentage (PySpark) — Medium · PYSPARK · +100 XP
- Year-over-Year Growth Percentage — Medium · SQL · +100 XP
- Year-over-Year Growth Percentage (PySpark) — Medium · PYSPARK · +100 XP
- Week-over-Week Growth Percentage — Medium · SQL · +100 XP
- Week-over-Week Growth Percentage (PySpark) — Medium · PYSPARK · +100 XP
- 7-Day Moving Average of Sales — Medium · SQL · +100 XP
- 7-Day Moving Average of Sales (PySpark) — Medium · PYSPARK · +100 XP
- 12-Month Rolling Revenue — Medium · SQL · +100 XP
- 12-Month Rolling Revenue (PySpark) — Medium · PYSPARK · +100 XP
- Best Selling Month of Each Year — Medium · SQL · +100 XP
- Best Selling Month of Each Year (PySpark) — Medium · PYSPARK · +100 XP
- Top 3 Customers by Region — Medium · SQL · +120 XP
- Top 3 Customers by Region (PySpark) — Medium · PYSPARK · +120 XP
- Detect Repeat Toll Crossings — Medium · SQL · +150 XP
- Reduced Toll for Repeat Crossings — Medium · SQL · +150 XP
- Detect Rapid Repeat Events — Medium · SQL · +150 XP
- Toll Revenue with Repeat-Crossing Discounts — Medium · PYSPARK · +150 XP
- Time Between Consecutive Vehicle Events — Medium · PYSPARK · +150 XP