StatisticDefinition

AMD: require(["esri/tasks/support/StatisticDefinition"], (StatisticDefinition) => { /* code goes here */ });
ESM: import StatisticDefinition from "@arcgis/core/tasks/support/StatisticDefinition";
Class: esri/tasks/support/StatisticDefinition
Inheritance: StatisticDefinition Accessor
Since: ArcGIS API for JavaScript 4.0
Deprecated since version 4.20. Use StatisticDefinition instead.

This class defines the parameters for querying a layer or layer view for statistics.

See also:
Examples:
// query for the sum of the population in all features
let sumPopulation = {
  onStatisticField: "POP_2015",  // service field for 2015 population
  outStatisticFieldName: "Pop_2015_sum",
  statisticType: "sum"
}
let query = layer.createQuery();
query.outStatistics = [ sumPopulation ];
layer.queryFeatures(query)
  .then(function(response){
     let stats = response.features[0].attributes;
     console.log("output stats:", stats);
  });
// query for the average of the population change for all features
let populationChangeDefinition = {
  onStatisticField: "POP_2015 - POP_2010",  // service field for 2015 population
  outStatisticFieldName: "avg_pop_change_2015_2010",
  statisticType: "avg"
}
let query = layer.createQuery();
query.outStatistics = [ populationChangeDefinition ];
layer.queryFeatures(query)
  .then(function(response){
     let stats = response.features[0].attributes;
     console.log("Average change:", stats.avg_pop_change_2015_2010);
  });

Constructors

new StatisticDefinition(properties)
Parameter:
properties Object
optional

See the properties for a list of all the properties that may be passed into the constructor.

Property Overview

Any properties can be set, retrieved or listened to. See the Working with Properties topic.
Show inherited properties Hide inherited properties
Name Type Summary Class
Stringmore details

The name of the class.

more detailsAccessor
Stringmore details

Defines the field for which statistics will be calculated.

more detailsStatisticDefinition
Stringmore details

Specifies the output field name for the requested statistic.

more detailsStatisticDefinition
Objectmore details

The parameters for percentile statistics.

more detailsStatisticDefinition
Stringmore details

Defines the type of statistic.

more detailsStatisticDefinition

Property Details

declaredClass Stringreadonly inherited
Since: ArcGIS API for JavaScript 4.7

The name of the class. The declared class name is formatted as esri.folder.className.

onStatisticField String

Defines the field for which statistics will be calculated. This can be service field names or SQL expressions. See the snippets below for examples.

Examples:
// query for the sum of the population in all features
let sumPopulation = {
  onStatisticField: "POP_2015",  // service field for 2015 population
  outStatisticFieldName: "Pop_2015_sum",
  statisticType: "sum"
}
let query = layer.createQuery();
query.outStatistics = [ sumPopulation ];
layer.queryFeatures(query)
  .then(function(response){
     let stats = response.features[0].attributes;
     console.log("output stats:", stats);
  });
// query for the average of the population change for all features
// Notice that you can pass a SQL expression as a field name to calculate statistics
let populationChangeDefinition = {
  onStatisticField: "POP_2015 - POP_2010",  // service field for 2015 population
  outStatisticFieldName: "avg_pop_change_2015_2010",
  statisticType: "avg"
}
let query = layer.createQuery();
query.outStatistics = [ populationChangeDefinition ];
layer.queryFeatures(query)
  .then(function(response){
     let stats = response.features[0].attributes;
     console.log("Average change:", stats.avg_pop_change_2015_2010);
  });
outStatisticFieldName String

Specifies the output field name for the requested statistic. Output field names can only contain alpha-numeric characters and an underscore. If no output field name is specified, the server assigns a field name to the returned statistic field.

statisticParameters Object
Since: ArcGIS API for JavaScript 4.15

The parameters for percentile statistics. This property must be set when the statisticType is set to either percentile-continuous or percentile-discrete.

Properties:
value Number

Percentile value. This should be a decimal value between 0 and 1.

orderBy String
optional

Specify ASC (ascending) or DESC (descending) to control the order of the data. For example, in a data set of 10 values from 1 to 10, the percentile value for 0.9 with orderBy set to ascending (ASC) is 9, but when ordenBy is set to descending (DESC) the result is 2. The default is ASC.

Possible Values:"ASC"|"DESC"

Default Value:null
Example:
let query = layer.createQuery();
// find the median value in descending order for response_rate field
// for all features stored in the layer and order
query.outStatistics = [{
  statisticType: "percentile-continuous",
  statisticParameters: {
    value: 0.5,
    orderBy: "DESC"
  },
  onStatisticField: "response_rate",
  outStatisticFieldName: "Resp_rate_median"
}];
// query the features for the median value statistics against the values
// stored in the response_rate field
queryFeatures(query);

// Query the percentile for response time in descending order for all features in the layer
// group the percentile by Division and unit fields
let query = layer.createQuery();
query.orderByFields = ["Division, Unit"];
query.groupByFieldsForStatistics = ["Division, Unit"];
query.outStatistics = [{
  statisticType: "percentile-discrete",
  statisticParameters: {
    value: 0.67,
    orderBy: "DESC"
  },
  onStatisticField: "response_time",
  outStatisticFieldName: "response_time_percentile"
}];
queryFeatures(query);
statisticType String

Defines the type of statistic.

Possible Values

Value Description
count The number of features that match a specified criteria.
sum The total sum of values that match a specified criteria.
min The minimum value of a given field.
max The maximum value of a given field.
avg The average of values that match a specified criteria.
stddev The standard deviation of values that match a specified criteria.
let The statistical variance of values in the specified criteria.
percentile-continuous The percentile statistic indicates the value above or below which a given percentage of values in a group of data falls. For example, the 90th percentile (value 0.9) is the value below which 90% of the data values may be found. percentile-continuous returns an interpolated value from the dataset.
percentile-discrete Similar to percentile-continuous except percentile-discrete returns a data value from within the dataset.

Known Limitations

Possible Values:"count"|"sum"|"min"|"max"|"avg"|"stddev"|"var"|"percentile-continuous"|"percentile-discrete"

Method Overview

Name Return Type Summary Class
StatisticDefinitionmore details

Creates a deep clone of StatisticDefinition object.

more detailsStatisticDefinition
*more details

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product.

more detailsStatisticDefinition
Objectmore details

Converts an instance of this class to its ArcGIS portal JSON representation.

more detailsStatisticDefinition

Method Details

clone(){StatisticDefinition}static

Creates a deep clone of StatisticDefinition object.

Returns:
Type Description
StatisticDefinition A new instance of a StatisticDefinition object equal to the object used to call .clone().
fromJSON(json){*}static

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.

Parameter:
json Object

A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.

Returns:
Type Description
* Returns a new instance of this class.
toJSON(){Object}

Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.

Returns:
Type Description
Object The ArcGIS portal JSON representation of an instance of this class.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.