Basic GROUP BY
Simple Grouping
Multiple Dimensions
TSummary Class
Programmatic summary creation. See BI.Summary.pas:402.TGroupBy Class
Defines a grouping dimension. See BI.Summary.pas:274.Properties
Data- The TDataItem to group byExpression- Optional expression instead of data fieldDatePart- Date/time part for temporal groupingHistogram- Numeric range groupingLayout- Row or column orientation
Example
DateTime Grouping
Group by date/time parts:Supported Date/Time Parts
From BI.Expression.pas:401: Time Parts:Millisecond,HundredsOfSecond,TenthsOfSecondSecond,Minute,QuarterHour,Hour
DayOfMonth,DayOfYear,WeekOfYear,WeekDayMonth,Quarter,YearDecade,DecadeOfYear,Century,Millennium
ShortWeekDayName,LongWeekDayNameShortMonthName,LongMonthName
Programmatic Date Grouping
Histogram Grouping
Group numeric values into ranges:Histogram Properties
Active- Enable histogram groupingNumBins- Number of ranges (default: auto)BinSize- Size of each rangeMinimum- Start value (default: auto)Maximum- End value (default: auto)AutoMinimum- Auto-detect minimumAutoMaximum- Auto-detect maximumFloatFormat- Format string for bin labels
Expression Grouping
Group by calculated expressions:Programmatic Expression Grouping
Multi-Dimensional Layout
Control row vs column orientation:Layout Options
TGroupByLayout.Automatic- Auto-detect (default)TGroupByLayout.Rows- Place in rowsTGroupByLayout.Items- Place in columns
Filtering Groups
Combine GROUP BY with WHERE:Having Clause
Filter after aggregation:Sorting Grouped Results
Remove Missing Values
Eliminate empty rows/columns:TBIQuery Component
Component-based grouping. See BI.Query.pas:250.Query Style Detection
TBIQuery automatically determines query style:- Select - No measures, dimensions only
- Summary - Has measures, creates TSummary
Performance Considerations
Optimize Grouping
- Filter first - Apply WHERE before GROUP BY
- Limit dimensions - Fewer dimensions = faster
- Use appropriate types - Integer grouping faster than text
Memory Usage
Grouped results size depends on:- Number of unique group combinations
- Number of measures
- Data types used
