public class AggregationQuery extends Query<AggregationResults>
An implementation of a Google Cloud Datastore Query that returns AggregationResults, It can be constructed by providing a nested query (StructuredQuery or GqlQuery) to run the aggregations on and a set of Aggregation.
StructuredQuery example:
EntityQuery selectAllQuery = Query.newEntityQueryBuilder()
.setKind("Task")
.build();
AggregationQuery aggregationQuery = Query.newAggregationQueryBuilder()
.addAggregation(count().as("total_count"))
.over(selectAllQuery)
.build();
AggregationResults aggregationResults = datastore.runAggregation(aggregationQuery);
for (AggregationResult aggregationResult : aggregationResults) {
System.out.println(aggregationResult.get("total_count"));
}
GqlQuery example:
GqlQuery selectAllGqlQuery = Query.newGqlQueryBuilder(
"AGGREGATE COUNT(*) AS total_count, COUNT_UP_TO(100) AS count_upto_100 OVER(SELECT * FROM Task)"
)
.setAllowLiteral(true)
.build();
AggregationQuery aggregationQuery = Query.newAggregationQueryBuilder()
.over(selectAllGqlQuery)
.build();
AggregationResults aggregationResults = datastore.runAggregation(aggregationQuery);
for (AggregationResult aggregationResult : aggregationResults) {
System.out.println(aggregationResult.get("total_count"));
System.out.println(aggregationResult.get("count_upto_100"));
}
See Also: Datastore queries
Methods
getAggregations()
public Set<Aggregation> getAggregations()
Returns the Aggregation(s) for this Query.
Type | Description |
Set<Aggregation> |
getMode()
public AggregationQuery.Mode getMode()
Returns the Mode for this query.
Type | Description |
AggregationQuery.Mode |
getNestedGqlQuery()
public GqlQuery<?> getNestedGqlQuery()
Returns the underlying for this Query. Returns null if created with StructuredQuery
Type | Description |
GqlQuery<?> |
getNestedStructuredQuery()
public StructuredQuery<?> getNestedStructuredQuery()
Returns the underlying for this Query. Returns null if created with GqlQuery
Type | Description |
StructuredQuery<?> |