aggregate method

Future<DbResponse> aggregate(
  1. List<Aggregate> aggregates, {
  2. Where? where,
})
  aggregate(
    [
      Sum("amount", label: "totalAmount"),
      Avg("amount", label: "averageAmount"),
      Max("amount", label: "maxAmount", castToNumeric: true),
      Min("amount", label: "minAmount"),
      Count("amount"),
    ]
  );

  aggregate([Sum("amount", label: "totalAmount")], where: Where("age",WhereOperator.isGreaterThan , 40));

Implementation

Future<DbResponse> aggregate(
  List<Aggregate> aggregates, {
  Where? where,
}) async {
  String query =
      'SELECT ${(aggregates.map((e) => e.query)).map((val) => '"$val"').join(', ')} FROM "$tableName" ${getQuery(where: where)}';
  var dbRes = await db.query(query);

  return DbResponse(
      dbRes.columnDescriptions.map((e) => e.columnName).toList(),
      List<List>.from(dbRes.toList()));
}