Oracle® OLAP DML Reference 10g Release 1 (10.1) Part Number B10339-02 |
|
|
View PDF |
The EVERY function returns YES
when every value of a Boolean expression is TRUE
. It returns NO
when any value of the expression is FALSE
.
Return Value
BOOLEAN
Syntax
EVERY(boolean-expression [[STATUS] dimensions])
Arguments
The Boolean expression whose values are to be evaluated.
Can be specified when one or more of the dimensions of the result of the function are not dimensions of the Boolean expression. (See the description of the dimensions argument.) When you specify the STATUS keyword when this is not the case, Oracle OLAP produces an error.
In cases where one or more of the dimensions of the result of the function are not dimensions of the Boolean expression, the STATUS keyword might be required in order for Oracle OLAP to process the function successfully, or the STATUS keyword might provide a performance enhancement. See "The STATUS Keyword".
The dimensions of the result. By default, EVERY returns a single value. When you indicate one or more dimensions for the results, EVERY tests for TRUE
values along the dimensions that are specified and returns an array of values. Each dimension must be either a dimension of boolean-expression or related to one of its dimensions. When it is a related dimension, you can specify the name of the relation instead of the dimension name. This enables you to choose which relation is used when there is more than one.
Notes
When the Boolean expression involves an NA
value, EVERY returns a YES
or NO
result when it can, as shown in Table 11-1, "YES and NO Values Returned by EVERY When the Boolean Expression Includes an NA Value"
Table 11-1 YES and NO Values Returned by EVERY When the Boolean Expression Includes an NA Value
Boolean Expression | Result |
---|---|
NA EQ NA |
YES |
NA NE NA |
NO |
NA EQ non-NA |
NO |
NA NE non-NA |
YES |
NA AND NO |
NO |
NA OR YES |
YES |
However, in cases where a YES
or NO
result would be misleading, EVERY returns NA
. For example, when you test whether an NA
value is greater than a non-NA
value, EVERY returns NA
.
EVERY is affected by the NASKIP option. When NASKIP is set to YES
(the default), EVERY ignores NA
values and returns YES
when every value of the expression that is not NA
is TRUE
and returns NO
when any values are not TRUE
. When NASKIP is set to NO
, EVERY returns NA
when any value of the expression is NA
. When all the values of the expression are NA
, EVERY returns NA
for either setting of NASKIP.
When boolean-expression is dimensioned by dimension of type DAY, WEEK, MONTH, QUARTER, or YEAR, you can specify any other DAY, WEEK, MONTH, QUARTER, or YEAR dimension as a related dimension. Oracle OLAP uses the implicit relation between the dimensions. To control the mapping of one DAY, WEEK, MONTH, QUARTER, or YEAR dimension to another (for example, from weeks to months), you can define an explicit relation between the two dimensions and specify the name of the relation as the dimension argument to the EVERY function.
For each time period in the related dimension, Oracle OLAP tests the data values for all the source time periods that end in the target time period. This method is used regardless of which dimension has the more aggregate time periods.
When one or more of the dimensions of the result of the function are not dimensions of the Boolean expression, Oracle OLAP creates a temporary variable to use while processing the function. When you specify the STATUS keyword, Oracle OLAP uses the current status instead of the default status of the related dimensions for calculating the size of this temporary variable.
When the size of the temporary variable for the results of the function would exceed 2 gigabytes, you must specify the STATUS keyword in order for Oracle OLAP to execute the function successfully. When the dimensions of the Boolean expression are limited to a few values and are physically fragmented, you can specify the STATUS keyword to improve the performance of the function.
When you use EVERY with the STATUS keyword in an expression that requires going outside of the status for results (for example, with the LEAD or LAG functions or with a qualified data reference), the results outside of the status will be returned as NA
.
Examples
Example 11-33 Testing for All-True Values by District
You can use the EVERY function to test whether each district's sales of sportswear have exceeded $50,000 in every month. To have the results dimensioned by district, specify district
as the second argument to EVERY.
LIMIT product TO 'Sportswear' REPORT HEADING 'Top Sales' EVERY(sales GT 50000, district)
The preceding statements produce the following output.
DISTRICT Top Sales -------------- ---------- Boston No Atlanta Yes Chicago Yes Dallas Yes Denver Yes Seattle NO
Example 11-34 Testing for All-True Values by Region
You might also want to find out the regions for which every district has sportswear sales that exceed $50,000 in every month. Since the region
dimension is related to the district
dimension, you can specify region
instead of district
as a dimension for the results of EVERY.
REPORT HEADING 'Top Sales' EVERY(sales GT 50000, region)
The preceding statement produces the following output.
REGION Top Sales -------------- ---------- East No Central Yes West NO