|Oracle® OLAP DML Reference
11g Release 2 (11.2)
Part Number E17122-05
The LAGABSPCT function returns the percentage difference between the value of a dimensioned variable or expression at a specified offset of a dimension before the current value of that dimension and the current value of the dimensioned variable or expression.
Unlike the LAGPCT function, which always uses the sign of the previous period value in calculating the result, LAGABSPCT uses the absolute value of the previous period value and therefore provides the direction of the percentage difference.
See also:"Using LAGDIF and LAGABSPCT".
DECIMAL value that corresponds to a percent difference or
NA when you try to lag before the first period of a time dimension.
LAGABSPCT(variable, n, dimension, [STATUS|NOSTATUS|limit-clause] )
A variable or expression that is dimensioned by dimension.
The offset (that is, the number of dimension values) to lag. LAGABSPCT uses this value to determine the number of values that LAGABSPCT should go back in dimension to retrieve the value of variable.
Typically, n is a positive
INTEGER that indicates the number of time periods (or dimension values) before the current one. When you specify a negative value for n, it indicates the number of time periods after the current one. In this case, LAGABSPCT compares the current value of the time series with a subsequent value.
The dimension along which the lag occurs. While this can be any dimension, it is typically a hierarchical time dimension of type TEXT that is limited to a single level (for example, the month or year level) or a dimension with a type of DAY, WEEK, MONTH, QUARTER, or YEAR.
When variable has a dimension with a type of DAY, WEEK, MONTH, QUARTER, or YEAR and you want LAGABSPCT to use that dimension, you can omit the dimension argument.
Specifies that LAGABSPCT should use the current status list (that is, only the dimension values currently in status in their current status order) when computing the lag.
(Default) Specifies that LAGABSPCT should use the default status (that is, a list all the dimension values in their original order) when computing the lag.
Specifies that LAGABSPCT should use the default status limited by limit-clause when computing the lag.
The syntax of limit-clause is the same syntax as any of the limit-clause arguments in the various forms of the LIMIT command (that is, the syntax of the LIMIT command after the limit-type argument such as "TO"). For the syntax of these arguments, see LIMIT (using values) command, LIMIT using LEVELREL command, LIMIT (using parent relation), LIMIT (using related dimension) command, LIMIT NOCONVERT command, and LIMIT command (using POSLIST).
To specify that LAG should use the current status limited by limit-clause when computing the lag, specify a LIMIT function for limit-clause.
Formula Used by LAGABSPCT
To obtain its results, LAGABSPCT uses the following formula.
(currentvalue - previousvalue) / ABS(previousvalue)
When the Previous Value of the Time Series Used by LAGABSPCT is Zero
When the previous value of the time series used by LAGABSPCT is zero, the result LAGABSPCT returns is determined by the DIVIDEBYZERO option. When DIVIDEBYZERO is set to
NO, an error occurs. When DIVIDEBYZERO is set to
YES, LAGABSPCT returns
Example 8-2 Using LAGDIF and LAGABSPCT
Suppose you have a variable called
sales that is dimensioned by a hierarchical dimension named
time, and dimensions called
products. Assume also that there is a dimension named
timelevels that contains the names of the levels of the
time dimension (that is,
Year) and a relation named
timelevelrel that is dimensioned by
time and that has values from
timelevels (that is, the related dimension of
You want to compare sales for racquets in Dallas for the January, 2000 and the previous year. You can use the LAG function to display sales from the previous years. You can use the LAGABSPCT function to calculate the percentage difference between the two months and indicate the direction of the change. For example, when sales increase, the percentage difference LAGABSPCT returns is positive. When sales decrease, the percentage difference LAGABSPCT returns is negative.
You can also use the LAGPCT function to calculate the percentage difference between two years. You can multiply the values returned by LAGABSPCT by 100 to display them as percentage points.
The following statements
ALLSTAT LIMIT product TO 'Racquets' LIMIT district TO 'Dallas' LIMIT time TO 'Jan2000' REPORT DOWN time sales - HEADING 'Last Jan' LAG(sales, 12, time, time LEVELREL timelevelrel)- HEADING 'Lagdif' LAGDIF(sales, 12, time, time LEVELREL timelevelrel)- HEADING 'Lagabspct' rset '%' d 0 LAGABSPCT(sales, 12, time, - time LEVELREL timelevelrel) * 100
produce this report.
DISTRICT: Dallas ------------------PRODUCT------------------ -----------------Racquets------------------ TIME SALES Last Jan Lagdif Lagabspct -------------- ---------- ---------- ---------- ---------- Jan2000 125,879.86 118,686.75 7,193.11 6%