GraphQL

Aggregations

You can use the groupTransactions and groupAccountStates endpoints to perform aggregation operations. These endpoints support various aggregation functions and allow for grouping, sorting, and filtering of results.

Example:

Loading...



Explanation of Parameters

  • by: List of Strings - Fields by which to group the results.
    • You can use all fields of block, transactions and account states. Check out raw_transactions for all available fields in result.
    • For some fields, you can apply functions.
      • For example, you want to group by month, you can use: by: ["gen_utime__toYYYYMM"]
      • Currently, allowed functions: ['toYYYYMMDD', 'toYYYYMM', 'toYear']
  • aggregations: List of Aggregation Objects - Specifies the fields to aggregate and the operations to perform. Each object includes:
    • field: The field to aggregate on (optional for count).
    • operation: The aggregation operation (e.g., sum, count).
  • order_by: String - The field to sort the results by. Can be a simple field name or an aggregation field in the format field__operation.
  • order_desc: Boolean - Specifies the sorting order. true for descending order, false for ascending order.
  • page: Int - The page number for pagination (default is 0).
  • page_size: Int - The number of results per page (default is 50).
  • filter_by: Filtering Expression - A set of conditions to filter the data.

Available Aggregation Operators

  • count: Counts the number of items.
  • sum: Sums the values of a field.
  • min: Finds the minimum value of a field.
  • max: Finds the maximum value of a field.
  • avg: Calculates the average value of a field.
  • argMax: Finds the value of another field corresponding to the maximum value of the target field.Comment
  • argMin: Finds the value of another field corresponding to the minimum value of the target field.Comment
  • least: Finds the least value among the specified fields.
  • quantile: Calculates the quantile value of a field.

Notes

Aggregation operations can be computationally expensive; consider limiting the scope using filter_by and pagination parameters (page and page_size).