Skip to content

Click to use (opens in a new tab)

What is Anchored Window Function

An Anchored Window Function in SQL is a type of window function that defines a frame within which the function operates, starting from a specific row known as the anchor. This allows for more precise control over the range of rows included in calculations such as running totals, moving averages, or cumulative sums. The anchor can be defined using keywords like ROWS BETWEEN or RANGE BETWEEN, specifying how far before or after the current row the window should extend.

Syntax and Components

The general syntax for an anchored window function includes the OVER clause with a PARTITION BY, ORDER BY, and a window frame specification. The window frame specifies the start and end points relative to the current row.

Example: Running Total with Anchor

SELECT order_date, order_amount,
       SUM(order_amount) OVER (
           ORDER BY order_date
           ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
       ) AS running_total
FROM orders;

In this example, the SUM function calculates a running total of order_amount ordered by order_date. The window frame starts from the first row (UNBOUNDED PRECEDING) and ends at the current row, ensuring the sum includes all previous rows up to the current one.

Common Use Cases

Anchored window functions are particularly useful for scenarios requiring cumulative calculations or comparisons against a baseline. For instance, calculating running totals, moving averages, or identifying trends over time can benefit from anchored windows.

Example: Moving Average with Anchor

SELECT date, value,
       AVG(value) OVER (
           ORDER BY date
           ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
       ) AS moving_average
FROM data_points;

This query calculates a three-point moving average where the window includes the current row and the two preceding rows.

Anchored window functions provide powerful tools for performing sophisticated data analysis directly within SQL queries, offering flexibility and precision in defining the scope of calculations.


Chat2DB - AI Text2SQL Tool for Easy Database Management

Click to use (opens in a new tab)

What can Chat2DB do?