Content deleted Content added
m →See also: § |
m →Example: lang="tsql" |
||
(7 intermediate revisions by 6 users not shown) | |||
Line 22:
sales | 4 | 4800 | 4866.6666666666666667
(10 rows)
The <code>PARTITION BY</code> clause groups rows into partitions, and the function is applied to each partition separately. If the <code>PARTITION BY</code> clause is omitted (such as
Window functions are evaluated after aggregation (after the [[Group by (SQL)|<code>GROUP BY</code>]] clause and non-window aggregate functions, for example).<ref name=":1" />
Line 50:
== Example ==
Window functions allow access to data in the records right before and after the current record.<ref>{{Cite journal|
NAME |
------------
Line 63:
Ophelia|
Zach| <-- Following (unbounded)
In the above table, the next query extracts for each row the values of a window with one preceding and one following row:
<syntaxhighlight lang=" SELECT
LAG(name, 1)
Line 72 ⟶ 73:
FROM people
ORDER BY name
</syntaxhighlight>
The result query contains the following values: | PREV | NAME | NEXT |
|----------|----------|----------|
Line 87 ⟶ 89:
== History ==
Window functions were
Support for particular database implementations was added as follows:
[[MySQL]] added support for window functions in version 8 in 2018, and [[MariaDB]] introduced first window functions with version 10.2.<ref>{{Cite web |title=MySQL :: What’s New in MySQL 8.0? (Generally Available) |url=https://dev.mysql.com/blog-archive/whats-new-in-mysql-8-0-generally-available/ |access-date=2022-11-21 |website=dev.mysql.com}}</ref><ref>{{Cite web |title=MySQL :: MySQL 8.0 Reference Manual :: 12.21.2 Window Function Concepts and Syntax |url=https://dev.mysql.com/doc/refman/8.0/en/window-functions-usage.html |website=dev.mysql.com}}</ref>▼
* [[Oracle Database|Oracle]] - version 8.1.6 in 2000.<ref>{{Cite web | title=Oracle 8i Release 2 (8.1.6) New Features|url=https://docs.oracle.com/cd/A81042_01/DOC/server.816/a76962/816.htm | access-date=2025-01-23 | website=www.oracle.com }}</ref><ref>{{Cite web | title=Analytic Functions in Oracle 8i|url=http://infolab.stanford.edu/infoseminar/archive/SpringY2000/speakers/agupta/paper.pdf | access-date=2025-01-23 | website=www.stanford.edu }}</ref>
* [[PostgreSQL]] - version 8.4 in 2009.<ref>{{Cite web | title=PostgreSQL Release 8.4 |url=https://www.postgresql.org/docs/8.4/release-8-4.html | access-date=2024-03-10 | website=www.postgresql.org|date=24 July 2014 }}</ref>
▲* [[MySQL]]
* [[MariaDB]] - version 10.2 in 2016.<ref>{{Cite web | title=MariaDB 10.2.0 Release Notes |url=https://mariadb.com/kb/en/mariadb-1020-release-notes/ | access-date=2024-03-10 | website=mariadb.com}}</ref>
* [[SQLite]] - release 3.25.0 in 2018.<ref>{{cite web |title=SQLite Release 3.25.0 On 2018-09-15 |url=https://www.sqlite.org/releaselog/3_25_0.html |website=www.sqlite.org |access-date=5 February 2025}}</ref>
== See also ==
|