SQL LAST_VALUE function

The LAST_VALUE function in SQL is a powerful analytic function that allows you to easily retrieve the last value in a specific column within a group of rows. It can be used to find the latest record, the most recent value, or to compare the current row with the last row in a partition.

Syntax

The LAST_VALUE function has the following syntax:

LAST_VALUE(expression) OVER (
    [PARTITION BY column1, column2, ...]
    ORDER BY column1, column2, ...
    [ROWS BETWEEN <window-frame> PRECEDING AND CURRENT ROW]
)

Example

Let’s consider a table named sales with the following structure:

OrderID ProductName Quantity OrderDate
1 Product A 10 2021-01-01
2 Product B 5 2021-01-02
3 Product A 7 2021-01-03
4 Product C 12 2021-01-04
5 Product B 8 2021-01-05

If we want to find the last order date for each product, we can use the LAST_VALUE function:

SELECT DISTINCT
    ProductName,
    LAST_VALUE(OrderDate) OVER (
        PARTITION BY ProductName
        ORDER BY OrderDate
        ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
    ) AS LastOrderDate
FROM
    sales;

This query will return the following result:

ProductName LastOrderDate
Product A 2021-01-03
Product B 2021-01-05
Product C 2021-01-04

In this example, the LAST_VALUE function is used to retrieve the last order date for each product by ordering the rows by OrderDate within each partition of ProductName.

#SQL #Analytics