Returns the average value in a dataset field among records which satisfy a certain condition.
dataset_avg_ex( StepNo Integer, GroupLevel Integer, FieldName String, Condition String ): Numeric
StepNo. Its meaning depends on the context in which the function is used:
Exporting to HTML using template context. HTML template can be filled with dynamic data in more than one step. For example, if your HTML document consists of several tables, which must be filled with database data from different datasets, you can fill them only in several export steps (usually, one dataset per step). That's why database related and some other functions have a StepNo parameter. When exporting a dataset to HTML using HTML template, it is also possible to specify an export step number (it is 1 by default). During the export procedure, only those expressions will be calculated where the StepNo parameter of expression function(s) is not present or matches with a step number, specified in export options. For example, the database_field_val(2, 'payment_sum')/100 expression will be calculated only in the second export step.
Reports context. StepNo parameter specifies the step (pass) in which the function must be calculated. Possible values: 1 or 2. When it equals to 1, the corresponding function will be calculated immediately when the expression is processed. When it equals to 2, report will run in double-pass mode and the corresponding function will be calculated only in the second pass of the report processing, i.e. after the report dataset reaches the last record. Using database functions in the second pass is useful, for example, when it is needing to put the report totals in the report or group headers.
Other contexts. Must be 1.
Combining different StepNo parameters in one expression (for example, database_field_val(1, 'total_sum') + database_field_val(2, 'payment_sum')) is possible, but such expression should be written so that functions with smaller StepNo will be calculated earlier.
GroupLevel is used only in reporting context and specifies the aggregation group. It can have the following values:
1. Group of level 1;
2. Group of level 2;
3. Group of level 3;
0. Full report;
-1. Current page.
FieldName is the name of the field to calculate.
Condition is a boolean expression. But it must be written as a String constant (i.e. enclosed in single quotes) or a string deterministic expression.
Examples of using
dataset_avg_ex( 1, 0, 'Salary', 'dataset_field_val(1, ''Age'') > 50' )