Available Aggregations
From BI.Summary.pas:106:Basic Aggregations
COUNT
Count rows or non-null values:SUM
Sum numeric values:AVERAGE
Calculate mean values:MIN and MAX
Find minimum and maximum values:FIRST and LAST
Get first or last value in group:TMeasure Class
Programmatic measure creation. See BI.Summary.pas:194.Measure Properties
Data- TDataItem to aggregateExpression- Optional expression to aggregateAggregate- Aggregation type (Sum, Count, etc.)Calculation- Post-aggregation calculationsMissing- How to handle null valuesName- Display name for measure
Multiple Measures
Aggregate multiple values:Programmatically
Aggregating Expressions
Aggregate calculated values:Programmatic Expression Aggregation
Measure Calculations
Post-aggregation calculations. See BI.Summary.pas:176.Percentage Calculations
Running Calculations
Missing Value Handling
Control null value treatment. See BI.Summary.pas:120.Missing Value Behavior
Default (AsZero = False):Count(Field)- Skips nullsSum- Skips nullsAverage- Skips nulls in countMin/Max- Ignores nulls
- Nulls treated as 0 in calculations
- Affects Sum and Average results
HAVING Clause
Filter aggregated results. See BI.Summary.pas:467.Multiple HAVING Conditions
TBIQuery Measures
Component-based measures. See BI.Query.pas:111.TQueryMeasure Properties
Data- Field to aggregateAggregate- Aggregation functionCalculation- Post-aggregation calculationsMissing- Null value handlingEnabled- Whether measure is activeExpression- Optional calculated expression
Aggregate Performance
Optimization Tips
- Filter before aggregating - Reduce data size
- Appropriate data types - Use smallest sufficient type
- Index usage - Pre-sorted data helps
Memory Considerations
Aggregations create:- Output data structure (one value per group)
- Intermediate calculation arrays
- Number of groups (cardinality)
- Number of measures
- Data types
