Date breakdown
How to perform a date breakdown query and how it works
Date breakdowns are aggregations that show the frequency of occurrence of a specific date value within a dataset and let you apply a specific operator over a selected field of the records that are present on that date. When performing a date breakdown query on the Metrics API endpoint you get in the response the list by date of the values of the computation (based on the selected operator
) on the selected field
, over the selected time interval
, aggregated by
another field.
Request
To perform a date breakdown query send a POST
request to the /{{resource_name}}/date_breakdown
endpoint specifying the query keys and filter parameters:
Query keys
by
String
The date field you want the results of the query aggragated by.
field
String
The field you want the metrics or statistics computed on.
operator
String
The computing operator.
interval
String
The time interval over which the metrics / stats are computed. The results will be aggregated by date accordingly (read how).
One of hour
, day
, week
, month
, or year
(default is month
).
Nesting breakdowns
You can nest a breakdown query into a date breakdown one. This means you can request each aggregation by date over the selected time interval to be in turn aggregated by
another field. Since the nested breakdown is a full-fledged breakdown query, it supports its own nesting (up to one level), as shown in the following example.
You cannot group the nested breakdown by the same field by which you're already grouping the parent breakdown.
Response
The response of a date breakdown query returns an aggregation by date over the time interval specified in the interval
key, containing the value of the computation (based on the operator specified in the operator
key) on the field specified in the field
key. If the query contains a nested breakdown, it is also detailed for each item of the array:
Date intervals
The results of a date breakdown query are aggregated over the specified time intervals. You can identify them in the response by looking at the date
keys:
Please note that those key values are only a reference to identify the related interval. In fact, each date
key refers to the very beginning of the interval, regardless of the range specified in the date filter which instead will still be honored for the actual computation (e.g. if you set a date filter that starts on April 15th, 2021 and ends on September 7th, 2021 for a date breakdown by month on the order resource, the first date key will be 2021-04-01T00:00:00.000Z
and the last 2021-09-01T00:00:00.000Z
, but the stats computation will still count the orders from April 15th to September 7th).
year
YYYY-01-01T00:00:00.000Z
month
YYYY-MM-01T00:00:00.000Z
day
YYYY-MM-DDT00:00:00.000Z
hour
YYYY-MM-DDTHH:00:00.000Z
Examples
The following examples will be focused on the query part of the request. So no specific filter or meta options will be defined (i.e. all the results will be filtered by the default filter and the response won't include the request payload). See the use cases section for more complex combinations of queries and filters.
Date breakdown
The following request performs a date breakdown query to get the stats about the orders placed by month:
Date breakdown with nested breakdown
The following request performs a date breakdown query to get the stats about the orders placed by month. Over each time interval, a breakdown of the orders' total amounts to check the maximum by country code is also requested. For each country code, a breakdown of the orders' total amounts to check the maximum by currency code (as long as it's over a specific threshold) is then requested:
Last updated