# Package com.mapinfo.midev.language.aggregation

Interfaces and classes that define the Aggregation language.

See: Description

Interface Summary
IAggregationCapability: Base interface for all aggregation language capability metadata.

Class Summary
AggregatingOperation: Enumeration of all the aggregation operations that may be specified in an aggregating search or that a data provider supports.
AggregatingQueryAttribute: Represents an attribute that is part of the projection list of a `SELECT` clause that is a parameter to an aggregation function.
AggregatingSearch: An `ISearch` that is composed of aggregations in the projection list of the query with an optional `IFilter` (i.e.
AggregatingSelectList: A `List`-like structure that is used to specify the aggregations to apply and return as part of an `AggregatingSearch`.
AggregationCapabilities: Metadata about which aspects of the `AggregationLanguage` that an `IDataSourceTable` supports.
AggregationCapabilitiesBuilder: A builder for aggregation capabilities.
AggregationLanguage: Identifier used to signify that an `IDataSourceTable` supports the aggregation language.
AvgAggregationCapability: Used to indicate that an `IDataSourceTable` supports the AVG aggregation.
CentroidAggregationCapability: Used to indicate that an `IDataSourceTable` supports getting centroid of the aggregating envelope of all the geometries in a column.
CountAllAggregationCapability: Used to indicate that an `IDataSourceTable` supports the COUNT(*) aggregation.
CountDistinctAggregationCapability: Used to indicate that an `IDataSourceTable` supports the COUNT(attributeName) aggregation.
GroupByAggregationCapability: Used to indicate that an `IDataSourcetable` supports the GROUP BY aggregation in the `AggregationLanguage`.
LimitAggregationCapability: Used to indicate that Limit is supported in aggregation searches.
MajorityAggregationCapability: Used to indicate that an `IDataSourceTable` supports the MAJORITY aggregation in the `AggregationLanguage`.
MaxAggregationCapability: Used to indicate that an `IDataSourceTable` supports the MAX aggregation in the `AggregationLanguage`.
MbrAggregationCapability: Used to indicate that an `IDataSourceTable` supports envelope aggregation on a geometry column.
MedianAggregationCapability: Used to indicate that the data source supports the MEDIAN aggregation.
MinAggregationCapability: Used to indicate that an `IDataSourceTable` supports the MIN aggregation in the `AggregationLanguage`.
ModeAggregationCapability: Used to indicate that an `IDataSourceTable` supports the MODE aggregation in the `AggregationLanguage`.
OffsetAggregationCapability: Used to indicate that Offset is supported in aggregation searches.
OrderByAggregationCapability: Used to indicate that ORDER BY is supported in aggregation searches.
SameAggregationCapability: Used to indicate that an `IDataSourceTable` supports the SAME aggregation in the `AggregationLanguage`.
ScaleAggregationCapability: Used to indicate that SCALE is supported in aggregation searches.
StdDevAggregationCapability: Used to indicate that the data source supports the STDDEV aggregation.
SumAggregationCapability: Used to indicate that the data source supports the SUM aggregation.
UnionAggregationCapability: Used to indicate that a data source supports the aggregate union capability.

## Package com.mapinfo.midev.language.aggregation Description

Interfaces and classes that define the Aggregation language. Recall that, unlike the Filter language, the Aggregation language allows queries with aggregations in the projection list. The Aggregation language also supports ordering of the results (i.e. ORDER BY) as well as GROUP BY. The Aggregation language is composed of two parts. The first part is the capabilities. The second part is the actual search.

The capabilities part of the Aggregation language allows a data provider implementor to advertise support for the Aggregation language and which parts. Part of the capabilities of the Aggregation language is influenced by its support for the Filter language. This is because the Aggregation language supports an optional `IFilter` along with the query.

The second part of the Aggregation language is the actual search as represented by the `AggregatingSearch` and its supporting classes.

See Also:
  `IFilter`, `FilterCapabilities`