ArcGIS Pro 3.1 API Reference Guide
ArcGIS.Core.Data Namespace / TableStatisticsDescription Class / TableStatisticsDescription Constructor
An IEnumerable containing one or more StatisticsDescriptions which specify what statistics function(s) should be performed on a specific field.
Example

In This Topic
    TableStatisticsDescription Constructor
    In This Topic
    Initializes a new instance of the TableStatisticsDescription class.
    Syntax

    Parameters

    statisticsDescriptions
    An IEnumerable containing one or more StatisticsDescriptions which specify what statistics function(s) should be performed on a specific field.
    Exceptions
    ExceptionDescription

    statisticsDescriptions is null.

    -or-

    The StatisticsDescription input at a specific index in statisticsDescriptions is null.

    statisticsDescriptions does not contain at least one non-null input.
    Example
    Calculating Statistics on a Table
    // Calculate the Sum and Average of the Population_1990 and Population_2000 fields, grouped and ordered by Region
    public void CalculateStatistics(FeatureClass countryFeatureClass)
    {
      using (FeatureClassDefinition featureClassDefinition = countryFeatureClass.GetDefinition())
      {
        // Get fields
        Field regionField = featureClassDefinition.GetFields()
          .First(x => x.Name.Equals("Region"));
        Field pop1990Field = featureClassDefinition.GetFields()
          .First(x => x.Name.Equals("Population_1990"));
        Field pop2000Field = featureClassDefinition.GetFields()
          .First(x => x.Name.Equals("Population_2000"));
    
        // Create StatisticsDescriptions
        StatisticsDescription pop1990StatisticsDescription = new StatisticsDescription(pop1990Field,
                  new List<StatisticsFunction>() { StatisticsFunction.Sum,
                                                    StatisticsFunction.Average });
    
        StatisticsDescription pop2000StatisticsDescription = new StatisticsDescription(pop2000Field,
                  new List<StatisticsFunction>() { StatisticsFunction.Sum,
                                                    StatisticsFunction.Average });
    
        // Create TableStatisticsDescription
        TableStatisticsDescription tableStatisticsDescription = new TableStatisticsDescription(new List<StatisticsDescription>() {
                      pop1990StatisticsDescription, pop2000StatisticsDescription });
        tableStatisticsDescription.GroupBy = new List<Field>() { regionField };
        tableStatisticsDescription.OrderBy = new List<SortDescription>() { new SortDescription(regionField) };
    
        // Calculate Statistics
        IReadOnlyList<TableStatisticsResult> tableStatisticsResults = countryFeatureClass.CalculateStatistics(tableStatisticsDescription);
    
        foreach (TableStatisticsResult tableStatisticsResult in tableStatisticsResults)
        {
          // Get the Region name
          // If multiple fields had been passed into TableStatisticsDescription.GroupBy, there would be multiple values in TableStatisticsResult.GroupBy
          string regionName = tableStatisticsResult.GroupBy.First().Value.ToString();
    
          // Get the statistics results for the Population_1990 field
          StatisticsResult pop1990Statistics = tableStatisticsResult.StatisticsResults[0];
          double population1990Sum = pop1990Statistics.Sum;
          double population1990Average = pop1990Statistics.Average;
    
          // Get the statistics results for the Population_2000 field
          StatisticsResult pop2000Statistics = tableStatisticsResult.StatisticsResults[1];
          double population2000Sum = pop2000Statistics.Sum;
          double population2000Average = pop2000Statistics.Average;
    
          // Do something with the results here...
        }
      }
    }
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.0 or higher.
    See Also