[{"id":"29a4ab0f-edd1-45e1-87df-0b8b4bb068b3","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"64b61a79-5817-4746-b591-28d4d5462c0a","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"6edef660-641f-4cd8-84f6-571130f37ae2","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"89a3ee5c-06c4-49c4-ac61-8325ba4bcca1","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"1e898427-e706-440e-9077-b35c7a5b8f46","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"4266ec12-a87a-444b-a8af-beff39a7defe","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"fd867fe6-72e0-4e45-bbac-edc72e608b08","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"fad338cd-7c96-48b9-a12d-1b979ba886b2","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"6fb42249-b832-4656-9137-35d9948bea1c","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"6e353a93-c1d4-4387-bad5-4a07fd18ed3a","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"acbe820e-65b4-4bd6-bcf3-a9d5b16163da","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"167a076a-6a93-49f6-8bf8-adee9abd9817","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"7fb1e240-d39d-4391-986f-c2d40adfb011","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"09cc5e9f-99c9-4258-b69c-ca5bb09a6b16","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"0b4ea8fb-4e7b-4028-9393-d1177a68ec17","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"35b8ea08-9ca6-49eb-a021-0c806de4ff96","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"7bace066-1638-4034-82eb-0db8c15f5bd1","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"7ec5ea8e-419f-40aa-b67d-301fa3e7b025","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"38f78942-4ca0-4631-a2d8-32dcfd6157a6","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"fc1d5e2a-5d1c-4479-ac87-c726c03d49aa","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"dd70702b-48a7-4896-b92d-db78ff9e52b0","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"cda2a866-9746-4790-9942-13c450ece8a1","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"3239f53b-81be-4d67-ae63-7ca0d6ce0f91","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"74c2daa1-efb0-4d3e-bd0c-8d11b297c92d","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"a4268f67-693d-4933-9e22-a77d68880a13","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"9f17896b-55b4-4627-8b6d-b01fdabdffe7","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"e45c5458-c148-4de7-a471-e2e3808d841e","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"ac44f25f-d7e5-46a3-a247-33e23e20e956","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"feb10296-b21e-4506-8d7e-567ed4dda994","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"ebba2e23-2c8d-4948-8cca-91ce71b3183d","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"ebdc80a9-26fc-4420-af7f-e576e4f12820","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"2cb68b65-34df-4322-911c-ead14627af13","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"0f2df6ef-74f6-42d5-a6ff-fb830bac6bc1","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"1feb74f5-775b-4809-80bb-1757ff6070f9","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"d8afaaaf-0174-4a14-8ba1-59043a985e91","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"7fd72fd2-933b-4816-81d1-b9e9d86b7c2c","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"9cf8d438-a37d-4dea-b0dd-e15d187e19ed","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"01561aea-2cd9-4883-a29a-1a7b9df2e432","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"ec2f2f29-d5a6-4fa0-aa61-353d48af9d1b","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"efb477ff-7d55-4163-a55e-a3c64415f6a4","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"c2302058-2cde-443c-a67f-e77cfd399c2e","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"a61a4e1a-eaea-4814-a424-e3c1ca6e3818","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"cb0d722f-fb48-45b5-a612-ff2df9b2e56e","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"50d0749d-1dde-4d8d-8963-e605f3a89b7a","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"900c820c-2909-4065-be81-72d3ca7733de","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"fac7dd69-11b1-42ee-8c1e-a41c97f4c3ee","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"9a357d48-c648-4ddb-8c79-2dc97bea6bc9","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"d5de4b91-714d-4c4c-8619-4b88fae85046","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"3741b662-b556-4859-8720-4c79fd48d48a","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"72db3e84-44c5-4d07-86b1-5f866a897e83","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"2a701ccf-5692-4ff9-9e44-62d6ec379397","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"d2087e5d-f90d-4827-a383-ff828bd65c69","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"bbf41a2c-98d3-4b54-82fb-a51c8441957e","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"477eb38f-0505-42fc-85ee-7456d81833e8","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"d9f37084-fcee-49d5-a192-8c41ee5615ed","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"067eb4be-9082-4153-8754-3bd0106a16ef","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"e943752e-d665-4133-ab1e-b6089d61b68a","tags":[{"product":null,"links":null,"id":"c3c0ef13-c7a9-4649-9fcb-23b3abec175d","name":"New","color":"Red","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]},{"id":"d573ae98-998d-4070-b089-620789e0738b","tags":[{"product":null,"links":null,"id":"2f377cfe-f512-431a-895b-f89af32041ce","name":"Upd","color":"Blue","productId":"c15646e4-63d8-4965-8d62-7549a2986e99"}]}]
        
(Showing Draft Content)

Window Functions

WINDOW functions provide a set of functions for data analysis in a TableSheet. The functions perform calculations across the window (a set of table rows) that are somehow related to the current row and generate a column to display the results. The row for which function evaluation occurs is called the current row.

A window function performs aggregate, ranking, and analytic functions over a particular window and produces a result for each row.

Notes:

  • The results of window functions may have an impact on the row order of the TableSheet.

    If the TableSheet has been sorted or grouped the result will be constant.

  • When there is a tree structure in the hierarchical data of TableSheet, the window function is ineffective.

  • The TableSheet filter executes after the window function is evaluated and filters only the specific rows.

WINDOW can only be used with window functions. By default, it considers the entire row as a window.

Syntax

WINDOW(window_function, [partitionby_function], [orderby_function], [frame_function])

Arguments

This function has the following arguments:

Argument

Description

window_function

[required] The window functions.

[partitionby_function]

[optional] Divide the rows into partitions.

[orderby_function]

[optional] Define the logical order of the rows within each partition.

[frame_function]

[optional] Specify start and end points to combine the rows to a window within the partition against the current row.

WINDOW

The WINDOW function determines the partitioning, ordering, and limiting window before the associated window function is applied.

The WINDOW function changes the sequence of the rows using the PARTITIONBY and ORDERBY parameters.

Note that if multiple WINDOW functions are applied in a view, then the PARTITIONBY and ORDERBY of them must be the same because the order of the entire row will be reordered by the PARTITIONBY and ORDERBY parameters. Otherwise, entire rows will show the sequence from the last applied WINDOW.

Example

WINDOW(ROWNUMBER(), PARTITIONBY([country]))

To know more about all available window functions, please refer to the Window Functions List section.

PARTITIONBY

The PARTITIONBY function divides the row into partitions in ascending order and window functions are applied to each partition separately. If PARTITIONBY is not specified, the entire row will be treated as a window. PARTITIONBY must have one or more column expressions that can be field names or formulas.

Syntax

PARTITIONBY(field_function [, field_function [, ... ] ])

Arguments

This function has the following argument:

Argument

Description

field_function

[required] The field name or formula be partitioned by.

Example

WINDOW(SUM([Sales]), PARTITIONBY([Product], YEAR([@OrderDate])))

ORDERBY

The ORDERBY defines the logical order of the rows within each partition. It will affect the window specified and the calculation of the window functions. ORDERBY must have one or more column expressions that can be field names or formulas.

Syntax

ORDERBY(field_function [, field_function [, ... ] ])

Arguments

This function has the following argument:

Argument

Description

field_function

[required] The field name or formula be ordered by.

You can also use ORDERASC and ORDERDESC to sort data in ascending or descending order. By default, the sort order is ORDERASC, and NULL values are treated as the lowest value.

Note:

  • If ORDERBY is not specified, the window functions will use all rows in the partition that are equal to FRAMERANGE(-1, -1).

  • If ORDERBY is specified and no FRAMEROWS/FRAMERANGE is specified, the FRAMERANGE(-1, [@]) will be the default range expression to limit the window for the calculation of the window functions.

Syntax

ORDERASC(field function)

ORDERDESC(field function)

Example

WINDOW(SUM([Sales]), ORDERBY([Product], ORDERDESC(QUARTER([@OrderDate]))))

FRAME

The FRAME function specifies start and end points to combine the rows to a window within the partition against the current row. The window functions will use the row set that is specified by the window. A window is closed with start, end, and current rows. A FRAME function can be defined as FRAMFRAMEROWS, FRAMERANGE, or FRAMEGROUPS.

FRAMEROWS

The FRAMEROWS function allows you to limit the rows of the window by specifying a nonnegative integer row count before and after the current row. The start or end row of the partition is used if one of the preceding or following row counts is outside the current partition bounds. The same result is obtained if the preceding or following row is specified as -1. However, if both are outside, no rows are returned.

Parameter

Accepted Value

Description

First Parameter

Indicates the row count before the current row.

-1, [@-n] or [@]

-1: Indicates the bounding of the current partition.

n: Accepts a nonnegative integer that indicates the row count.

[@]: Indicates the position of the current row.

Second Parameter

Indicates the row count after the current row.

-1, [@+n] or [@

Note: The default value is [@] if the second parameter is missing in the FRAMEROWS function.

Syntax

FRAMEROWS(preceding_function [, following_function ])

Arguments

This function has the following arguments:

Argument

Description

preceding_function

[required] A row count preceding the current row.

[following_function]

[optional] A row count following the current row.

Example

WINDOW(SUM([Sales]), PARTITIONBY([Product], YEAR([@OrderDate])), ORDERBY(QUARTER([@OrderDate])), FRAMEROWS([@-1], [@]))

FRAMERANGE

The FRAMERANGE function limits the range of the window by specifying a nonnegative number as the distance around the same values from peer rows which have the same value in the current row composed of the ORDERBY columns.

The FRAMERANGE function has two main parameters, each indicating the distance before and after the peer rows of the current row.

Parameter

Accepted Value

Description

First Parameter

Indicates distance before peer rows of the current row.

-1, [@-n]

If the order is descending, it should be [@+n]), or [@].

-1: Indicates the bounding of the current partition.

n: Accepts a nonnegative integer that indicates the distance.

[@]: Indicates the peer rows that have the same value as the current row.

Second Parameter

Indicates the distance after peer rows of the current row.

-1, [@+n]

If the order is descending, it should be [@-n]), or [@].

The frame range is a fully closed interval. It requires the ORDERBY to provide the first column with the numeric data type. However, if there is more than 1 ordered column, only -1 and [@] are accepted.

FRAMERANGE with ORDERBY

  • FRAMERANGE requires ORDERBY to provide only one column with a numeric data type to retrieve the value in the current row to find the tied rows for [@].

  • If ORDERBY is removed, the default frame expression is FRAMERANGE(-1, -1) even if the FRAMERANGE is specified.

  • If ORDERBY contains more than one column, only -1 and [@] can be used in FRAMERANGE, and [@-/+n] will default to -1. The current tied rows may be defined by the combined column values.

FRAMERANGE with NULL

  • If some of the values in the ordered column are NULL, the rows with NULL values will be arranged side by side at the top/bottom within the partition.

  • If the values of current tied rows are NULL, [@+/-n] will be similar to [@+/-0] which is equal to [@].

  • If the values of current tied rows are not NULL, the retrieving of [@+/-n] will stop to the rows with NULL.

Syntax

FRAMERANGE(preceding_function [, following_function ])

Arguments

This function has the following arguments:

Argument

Description

preceding_function

[required] A distance preceding the current row.

[following_function]

[optional] A distance following the current row.

Example

WINDOW(SUM([Sales]), PARTITIONBY([Product], YEAR([@OrderDate])), ORDERBY(QUARTER([@OrderDate])), FRAMERANGE([@-1], [@]))


The following image shows how to get the moving average revenue of each product and revenue trends using aggregate window functions.


WindowFunctions

FRAMEGROUPS

The FRAMEGROUPS function specifies the starting and ending boundaries based on the number of "groups" relative to the current group where a “group” refers to the row sets with equivalent values derived from the window ORDERBY.

A group count that is outside the bounds of a partition falls back to the start/end group and is specified if both preceding/following are –1 but if both are outside, none is returned.

Parameter

Accepted Value

Description

First Parameter

Indicates the group count beginning against the current group.

-1, [@-n], [@+n], or [@]

-1: indicates the unbounded (beginning or ending) of the partition.

[@-n] or [@+n]: indicates the group count beside the current group and the ‘n’ accepts a nonnegative integer.

[@]: indicates the position of the current group.

Second Parameter

Indicates the group count ending against the current group.

-1, [@-n], [@+n] or [@]

Note: The default value is [@] if the second parameter is missing in the FRAMEGROUPS function.

Syntax

FRAMEGROUPS(BeginningExpression, [EndingExpression], [ExcludeMode])

Arguments

This function has the following arguments:

Argument

Description

Beginning_Expression

[required] The group count preceding the current group.

[Ending_Expression]

[optional] The group count following the current group.

Example

WINDOW(SUM([Sales]), PARTITIONBY([Product], YEAR([@OrderDate])), ORDERBY(DATEPART([@OrderDate], \"Q\")), FRAMEGROUPS([@-1], [@]))

FRAMEGROUPS with ORDERBY

  • The FRAMEGROUPS require the ORDERBY to provide the column to retrieve the value in the current row to find the tied rows for [@].

  • If the ORDERBY is removed, the default frame expression is FRAMEGROUPS(-1, -1) even if the FRAME GROUPS is specified.

  • If ORDERBY has more than one column, the current tied rows are defined according to the combined column values. For example, if you order by year, quarter, and month, the current tied rows are identified by those same columns.

FRAME with EXCLUDE Mode

The frame with exclude mode is the last parameter in the FRAME expression. It is an optional parameter and has four types.

EXCLUDE NO OTHERS

Indicates that “No rows are Excluded” and is represented by 0.

Example

WINDOW(SUM([Sales]), PARTITIONBY([Product], YEAR([@OrderDate])), ORDERBY(DATEPART([@OrderDate], \"Q\")), FRAMEGROUPS([@-1], [@], 1))

The following image shows how to get the monthly average revenue, nearly average revenue of each product and revenue trends using aggregate window functions with EXCLUDE mode.


exclude-no-other

EXCLUDE CURRENT ROW

Indicates that the current row is excluded, however, the other peers of the current row remain for FRAMEGROUPS and FRAMERANGE and are represented by 1.

Example

WINDOW(SUM([Sales]), PARTITIONBY([Product], YEAR([@OrderDate])), ORDERBY(DATEPART([@OrderDate], \"Q\")), FRAMEGROUPS([@-1], [@], 1))

The following image shows how to get the monthly average revenue, nearly average revenue of each product, and revenue trends using aggregate window functions with EXCLUDE mode.


exclude-currentrow

EXCLUDE GROUP

Indicates that the current row and the peers are all excluded, even if it’s FRAMEROWS and is represented by 2.

Example

WINDOW(SUM([Sales]), PARTITIONBY([Product], YEAR([@OrderDate])), ORDERBY(DATEPART([@OrderDate], \"Q\")), FRAMEGROUPS([@-1], [@], 2))

The following image shows how to get the monthly average revenue, nearly average revenue of each product, and revenue trends using aggregate window functions with EXCLUDE mode.


exclude-group

EXCLUDE TIES

Indicates that the current row remains, however, the other peers are excluded and are represented by 3.

Example

WINDOW(SUM([Sales]), PARTITIONBY([Product], YEAR([@OrderDate])), ORDERBY(DATEPART([@OrderDate], \"Q\")), FRAMEGROUPS([@-1], [@], 3))

The following image shows how to get the monthly average revenue, nearly average revenue of each product, and revenue trends using aggregate window functions with EXCLUDE mode.


exclude-ties

Window Chaining

Window Chaining allows you to define one window before and reuse the new window which implicitly specifies the PARTITYIONBY, ORDERBY, or Window Frame.

In a pre-defined window, PARTITIONBY, ORDERBY, and Window Frame are overridden by the expression from the new window.

Example

WINDOWDEF(PARTITIONBY([Product], YEAR([@OrderDate])), ORDERBY(DATEPART([@OrderDate], \"Q\")), FRAMEROWS([@-2], [@], 3))

The following image shows how to get the average/quality of revenue of each product and revenue trends using window functions.


window-chaining-formula