Skip To ContentArcGIS for DevelopersSign In Dashboard

StatisticDefinition

require(["esri/tasks/support/StatisticDefinition"], function(StatisticDefinition) { /* code goes here */ });
Class: esri/tasks/support/StatisticDefinition
Inheritance: StatisticDefinition Accessor
Since: ArcGIS API for JavaScript 4.0

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
var sumPopulation = {
  onStatisticField: "POP_2015",  // service field for 2015 population
  outStatisticFieldName: "Pop_2015_sum",
  statisticType: "sum"
}
var query = layer.createQuery();
query.outStatistics = [ sumPopulation ];
layer.queryFeatures(query)
  .then(function(response){
     var stats = response.features[0].attributes;
     console.log("output stats": stats);
  });
// query for the average of the population change for all features
var populationChangeDefinition = {
  onStatisticField: "POP_2015 - POP_2010",  // service field for 2015 population
  outStatisticFieldName: "avg_pop_change_2015_2010",
  statisticType: "avg"
}
var query = layer.createQuery();
query.outStatistics = [ populationChangeDefinition ];
layer.queryFeatures(query)
  .then(function(response){
     var 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.
NameTypeSummaryClass
String

The name of the class.

more details
more detailsAccessor
String

Defines the field for which statistics will be calculated.

more details
more detailsStatisticDefinition
String

Specifies the output field name for the requested statistic.

more details
more detailsStatisticDefinition
Object

The parameters for percentile statistics.

more details
more detailsStatisticDefinition
String

Defines the type of statistic.

more details
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
var sumPopulation = {
  onStatisticField: "POP_2015",  // service field for 2015 population
  outStatisticFieldName: "Pop_2015_sum",
  statisticType: "sum"
}
var query = layer.createQuery();
query.outStatistics = [ sumPopulation ];
layer.queryFeatures(query)
  .then(function(response){
     var 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
var populationChangeDefinition = {
  onStatisticField: "POP_2015 - POP_2010",  // service field for 2015 population
  outStatisticFieldName: "avg_pop_change_2015_2010",
  statisticType: "avg"
}
var query = layer.createQuery();
query.outStatistics = [ populationChangeDefinition ];
layer.queryFeatures(query)
  .then(function(response){
     var 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:
var 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
var 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:

ValueDescription
countThe number of features that match a specified criteria.
sumThe total sum of values that match a specified criteria.
minThe minimum value of a given field.
maxThe maximum value of a given field.
avgThe average of values that match a specified criteria.
stddevThe standard deviation of values that match a specified criteria.
varThe statistical variance of values in the specified criteria.
percentile-continuousThe 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-discreteSimilar to percentile-continuous except percentile-discrete returns a data value from within the dataset.

Known Limitations

  • The statisticParameters must be set when calculating percentile-continuous or percentile-discrete statistics.
  • The percentile-continuous and percentile-discrete statistic types cannot be used with the having parameter.
  • The percentile-continuous and percentile-discrete statistic types are only supported with server-side FeatureLayers.
  • The percentile-continuous and percentile-discrete statistic types are supported if capabilities.query.supportsPercentileStatistics is true.

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

Method Overview

NameReturn TypeSummaryClass
StatisticDefinition

Creates a deep clone of StatisticDefinition object.

more details
more detailsStatisticDefinition
*

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

more details
more detailsStatisticDefinition
Object

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

more details
more detailsStatisticDefinition

Method Details

Creates a deep clone of StatisticDefinition object.

Returns:
TypeDescription
StatisticDefinitionA 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 a product in the ArcGIS platform. 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:
TypeDescription
*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() topic in the Guide for more information.

Returns:
TypeDescription
ObjectThe ArcGIS portal JSON representation of an instance of this class.

API Reference search results

NameTypeModule
Loading...