last_value(…) [respect nulls]


BigQueryDb2 (LUW)DerbyH2MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite200720092011201320152017201920212023⚠ 3.25.0 - 3.50.0a⊘ 3.5.7 - 3.23.1✓ 2022+a⚠ 2012 - 2019a⊘ 2008R2⚠ 8.4 - 17a⊘ 8.3✓ 11gR2 - 23.9a⚠ 11gR1a✓ 8.0.11 - 9.3.0⊘ 5.0 - 5.7⚠ 10.2 - 12.0.2a⊘ 5.1 - 10.1✓ 1.4.198 - 2.3.232⊘ 1.4.191 - 1.4.197⊘ 10.15.1.3 - 10.17.1.0⚠ 9.7 - 12.1.2a⚠ 2.0a
  1. No explicit respect nulls clause

The last_value(…) window function evaluates its argument using the last row defined by the over clause:

SELECT LAST_VALUE(<expr>) OVER (ORDER BY …)
  FROM …

Default Framing Applies

If there is no explicit framing clause the following default applies:

RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

That means, the last_value() function cannot see beyond the ties to the current row. Open the frame to bring the last row into reach:

ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING

Normative References

The last_value() window function is defined in ISO/IEC 9075-2:2023 as part of optional feature T617, “FIRST_VALUE and LAST_VALUE functions”.

You can’t catch up on 20 years of SQL evolution in one day. Subscribe the newsletter via E-Mail, Bluesky or RSS to gradually catch up and to keep modern-⁠sql.com on your radar.

About the Author

Photo of Markus Winand

Markus Winand provides insights into SQL and shows how different systems support it at modern-sql.com. Previously he made use-the-index-luke.com, which is still actively maintained. Markus can be hired as trainer, speaker and consultant via winand.at.

Buy the Book

Cover of “SQL Performance Explained”: Squirrel running on grass

The essence of SQL tuning in 200 pages

Buy now!
(paperback and/or PDF)

Paperback also available at Amazon.com.

Hire Markus

Markus offers SQL training and consulting for developers working at companies of all sizes.
Learn more »

Connect with Markus Winand

Subscribe mailinglistsSubscribe the RSS feedMarkus Winand on LinkedInMarkus Winand on XINGMarkus Winand on TwitterMarkus Winand on Bluesky
Copyright 2015-2025 Markus Winand. All righs reserved.
Legal | Contact | NO WARRANTY | Trademarks | Privacy and GDPR