aggregate method

AggregateQuery aggregate(
  1. AggregateField aggregateField1,
  2. [AggregateField? aggregateField2,
  3. AggregateField? aggregateField3,
  4. AggregateField? aggregateField4,
  5. AggregateField? aggregateField5,
  6. AggregateField? aggregateField6,
  7. AggregateField? aggregateField7,
  8. AggregateField? aggregateField8,
  9. AggregateField? aggregateField9,
  10. AggregateField? aggregateField10,
  11. AggregateField? aggregateField11,
  12. AggregateField? aggregateField12,
  13. AggregateField? aggregateField13,
  14. AggregateField? aggregateField14,
  15. AggregateField? aggregateField15,
  16. AggregateField? aggregateField16,
  17. AggregateField? aggregateField17,
  18. AggregateField? aggregateField18,
  19. AggregateField? aggregateField19,
  20. AggregateField? aggregateField20,
  21. AggregateField? aggregateField21,
  22. AggregateField? aggregateField22,
  23. AggregateField? aggregateField23,
  24. AggregateField? aggregateField24,
  25. AggregateField? aggregateField25,
  26. AggregateField? aggregateField26,
  27. AggregateField? aggregateField27,
  28. AggregateField? aggregateField28,
  29. AggregateField? aggregateField29,
  30. AggregateField? aggregateField30]
)

Creates an aggregation query with the specified fields.

Parameters:

  • aggregateField1 to aggregateField30: Up to 30 aggregation fields.

Returns: An AggregateQuery with the aggregations.

Example:

var aggQuery = query.aggregate(sum('sales'), average('price'));

Implementation

AggregateQuery aggregate(
  AggregateField aggregateField1, [
  AggregateField? aggregateField2,
  AggregateField? aggregateField3,
  AggregateField? aggregateField4,
  AggregateField? aggregateField5,
  AggregateField? aggregateField6,
  AggregateField? aggregateField7,
  AggregateField? aggregateField8,
  AggregateField? aggregateField9,
  AggregateField? aggregateField10,
  AggregateField? aggregateField11,
  AggregateField? aggregateField12,
  AggregateField? aggregateField13,
  AggregateField? aggregateField14,
  AggregateField? aggregateField15,
  AggregateField? aggregateField16,
  AggregateField? aggregateField17,
  AggregateField? aggregateField18,
  AggregateField? aggregateField19,
  AggregateField? aggregateField20,
  AggregateField? aggregateField21,
  AggregateField? aggregateField22,
  AggregateField? aggregateField23,
  AggregateField? aggregateField24,
  AggregateField? aggregateField25,
  AggregateField? aggregateField26,
  AggregateField? aggregateField27,
  AggregateField? aggregateField28,
  AggregateField? aggregateField29,
  AggregateField? aggregateField30,
]) {
  Query<T> newQuery = Query<T>(
    helper: QueryHelper(),
    oracledb: _oracledb,
    path: path,
  );
  _helper.dupQuery(newQuery, this);

  var temp_arr = [
    aggregateField1,
    aggregateField2,
    aggregateField3,
    aggregateField4,
    aggregateField5,
    aggregateField6,
    aggregateField7,
    aggregateField8,
    aggregateField9,
    aggregateField10,
    aggregateField11,
    aggregateField12,
    aggregateField13,
    aggregateField14,
    aggregateField15,
    aggregateField16,
    aggregateField17,
    aggregateField18,
    aggregateField19,
    aggregateField20,
    aggregateField21,
    aggregateField22,
    aggregateField23,
    aggregateField24,
    aggregateField25,
    aggregateField26,
    aggregateField27,
    aggregateField28,
    aggregateField29,
    aggregateField30,
  ];

  for (var i = 0; i < 30; i++) {
    if (temp_arr[i] != null) {
      AggregateField? t = temp_arr[i];

      newQuery._aggregate.add({
        "func": t?.aggregateType,
        "field": t?.field,
        "op_key": t?.field,
      });
    }
  }

  return AggregateQuery(query: newQuery);
}