| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | [[esql-stats-by]]=== `STATS ... BY`Use `STATS ... BY` to group rows according to a common value and calculate oneor more aggregated values over the grouped rows.[source,esql]----include::{esql-specs}/docs.csv-spec[tag=stats]----Which returns:[%header,format=dsv,separator=|]|===include::{esql-specs}/docs.csv-spec[tag=stats-result]|===If `BY` is omitted, the output table contains exactly one row with theaggregations applied over the entire dataset:[source,esql]----include::{esql-specs}/docs.csv-spec[tag=statsWithoutBy]----Returning:[%header,format=dsv,separator=|]|===include::{esql-specs}/docs.csv-spec[tag=statsWithoutBy-result]|===It's possible to calculate multiple values:[source,esql]----include::{esql-specs}/docs.csv-spec[tag=statsCalcMultipleValues]----It's also possible to group by multiple values (only supported for long andkeyword family fields):[source,esql]----include::{esql-specs}/docs.csv-spec[tag=statsGroupByMultipleValues]----The following aggregation functions are supported:* `AVG`* `COUNT`* `COUNT_DISTINCT`* `MAX`* `MEDIAN`* `MEDIAN_ABSOLUTE_DEVIATION`* `MIN`* `SUM`
 |