Tableau Funtion: WINDOW_SUM()
Tableau Function: WINDOW_SUM( )
Category: Table Calculation Functions
What Is the Function?
WINDOW_SUM() is a table calculation function in Tableau that returns the sum of an expression within a specified window (partition) of data in a visualization.
Purpose
It calculates the total of a measure across a defined range of rows relative to the current row in the view.
Type of Calculation
Table Calculation
Post-aggregation computation
Operates on aggregated measures (e.g.,
SUM(Sales))Computed after the data is returned from the data source
Practical Use Cases
Creating running totals
Calculating cumulative sales
Computing moving sums (rolling totals)
Comparing partial totals within categories
Building contribution-to-total metrics
Aggregating metrics across partitions dynamically
WINDOW_SUM(expression, [start, end])
| Parameter | Type | Description |
|---|---|---|
expression | Column (Aggregated Measure) | The numeric measure to sum (e.g., SUM(Sales)) |
start | Scalar (Integer, Optional) | Offset from the current row defining the start of the window |
end | Scalar (Integer, Optional) | Offset from the current row defining the end of the window |
How It Works?
Logical Principle
The function sums values across a defined window:
Where:
xi = aggregated values
Window is determined by partition and addressing settings
Tableau’s Process:
Aggregates the measure (e.g.,
SUM(Sales))Determines partition and addressing
Identifies rows within the defined window
Computes the sum across those rows
Return Value
Data Type: Numeric
Meaning: Returns the total sum of the expression within the defined window.
If no rows exist in the window, the result is NULL.
When Should We Use It?
Use WINDOW_SUM() when:
Creating cumulative totals
Calculating rolling revenue
Computing totals within categories
Building dynamic subtotal calculations
Calculating percent of total
Performing moving average numerator calculations
Basic Usage
Sum across entire partition:
WINDOW_SUM(SUM(Sales))
Column Usage
Calculate total sales per Region:
WINDOW_SUM(SUM(Sales))
Set:
Partition by → Region
Compute Using → Table (Down)
Advanced Usage
Running Total
WINDOW_SUM(SUM(Sales), FIRST(), 0)
Calculates cumulative sum from first row to current row.
Rolling 3-Month Sales
WINDOW_SUM(SUM(Sales), -2, 0)
Adds:
Current month
Previous two months
Percent of Total
SUM(Sales) / WINDOW_SUM(SUM(Sales))
Calculates contribution percentage.
Dynamic Subtotal Within Category
IF [Category] = "Technology" THEN
WINDOW_SUM(SUM(Sales))
END
Tips and Tricks
- Always configure Compute Using correctly
- Use
FIRST()andLAST()for dynamic window boundaries - Sort your data properly for time-based running totals
- Combine with
WINDOW_AVG()for moving averages
Common Pitfalls:
Forgetting that it is a table calculation
Mixing aggregated and non-aggregated fields
Incorrect partitioning
Large windows affecting performance
Related Functions
RUNNING_SUM()WINDOW_AVG()WINDOW_MIN()WINDOW_MAX()WINDOW_COUNT()TOTAL()
We’ve got plenty of resources to help you master Tableau functions. For more details, check out the official Tableau documentation. Or, if you’re ready for more practice, let’s dive into related functions and build your Tableau skills further!
If you’re ready to harness the full power of Tableau and elevate your data analytics capabilities, our expert Tableau consulting services are here to guide you. Whether you need support with building advanced calculated fields, creating dynamic visual dashboards, or optimizing your data sources for peak performance, our team of experienced Tableau consultants delivers customized solutions designed for your business needs. Visit our Tableau Consulting page to discover how we can help your organization turn data into impactful, insight-driven decisions.
SUM() aggregates data at the database level, while WINDOW_SUM() calculates sums within a defined window in the visualization.
Use:
WINDOW_SUM(SUM(Sales), FIRST(), 0)Yes. It calculates the sum within each partition defined by the view.
Yes. Use start and end offsets:
WINDOW_SUM(SUM(Sales), -2, 0)No. It is a table calculation computed within Tableau after the query returns.