# Window Functions

- [Window Functions Overview](/docs/server/reference/sql-functions/special-functions/window-functions/window-functions-overview.md): Understand window function concepts. These functions operate on a set of rows (window) defined by an OVER clause, returning a value for each row without collapsing results.
- [Window Frames](/docs/server/reference/sql-functions/special-functions/window-functions/window-frames.md): Define subsets of rows for calculation. Window frames specify which rows relative to the current row are included in the window function's calculation.
- [ColumnStore Window Functions](/docs/server/reference/sql-functions/special-functions/window-functions/window-functions-columnstore-window-functions.md): Review window function support in ColumnStore. This page details the specific window functions and limitations applicable when using the ColumnStore storage engine.
- [CUME\_DIST](/docs/server/reference/sql-functions/special-functions/window-functions/cume_dist.md): Calculate cumulative distribution. This function returns the relative rank of the current row within its partition, calculated as the percentage of rows preceding or peer to it.
- [DENSE\_RANK](/docs/server/reference/sql-functions/special-functions/window-functions/dense_rank.md): Calculate rank without gaps. This function assigns a rank to each row within a partition, with tied values receiving the same rank and no numbers skipped.
- [FIRST\_VALUE](/docs/server/reference/sql-functions/special-functions/window-functions/first_value.md): Return the value from the first row in the window frame. This function retrieves the value of an expression from the first row of the defined window.
- [LAG](/docs/server/reference/sql-functions/special-functions/window-functions/lag.md): Access data from a preceding row. This function returns the value of an expression from a row at a specified physical offset prior to the current row.
- [LEAD](/docs/server/reference/sql-functions/special-functions/window-functions/lead.md): Access data from a following row. This function returns the value of an expression from a row at a specified physical offset after the current row.
- [MEDIAN](/docs/server/reference/sql-functions/special-functions/window-functions/median.md): Calculate the median value. This window function returns the middle value (50th percentile) of an ordered set of values within the window.
- [NTH\_VALUE](/docs/server/reference/sql-functions/special-functions/window-functions/nth_value.md): Return the value from the N-th row. This function retrieves the value of an expression from the N-th row within the window frame.
- [NTILE](/docs/server/reference/sql-functions/special-functions/window-functions/ntile.md): Distribute rows into buckets. This function divides the rows in an ordered partition into a specified number of approximately equal groups.
- [PERCENT\_RANK](/docs/server/reference/sql-functions/special-functions/window-functions/percent_rank.md): Calculate relative rank. This function returns the percentage rank of the current row within its partition, ranging from 0 to 1.
- [PERCENTILE\_CONT](/docs/server/reference/sql-functions/special-functions/window-functions/percentile_cont.md): Calculate a continuous percentile. This inverse distribution function returns an interpolated value that corresponds to the specified percentile.
- [PERCENTILE\_DISC](/docs/server/reference/sql-functions/special-functions/window-functions/percentile_disc.md): Calculate a discrete percentile. This inverse distribution function returns an actual value from the dataset that corresponds to the specified percentile.
- [RANK](/docs/server/reference/sql-functions/special-functions/window-functions/rank.md): Calculate rank with gaps. This function assigns a rank to each row, with tied values receiving the same rank and subsequent ranks skipped.
- [ROW\_NUMBER](/docs/server/reference/sql-functions/special-functions/window-functions/row_number.md): Complete ROW\_NUMBER() reference: ROW\_NUMBER() OVER() window syntax, PARTITION BY clauses, ORDER BY ordering, and RANK()/DENSE\_RANK() comparisons.
