Aggregate array items
Anatomy
<array:aggregate var="var" var_result="var" type="count" key="string"/>
Description: ARRAY:AGGREGATE calculates an aggregated value of the values of an array based on a given aggregation type.
A given key may specify the column of a multidimensional array to aggregate by. If however, the key is omitted, then the array is treated as an unidimensional list.
Attention:
If a key is specified and that key does not exist within the inner array, the corresponding item of the outer array will be skipped.
Array items with non-numeric values will be skipped.
Attributes
| Name | Type | Description | Defined By |
|---|---|---|---|
| var | var | Variable name | array:aggregate |
| var_result | var | Result variable name | array:aggregate |
| type | type | Aggregation type | array:aggregate |
Multidimensional
| Name | Type | Description | Defined By |
|---|---|---|---|
| key | string | Key | array:aggregate |
Results:
| Binding | Type | Predicate |
|---|---|---|
| var_result | N/A |
Examples
Count
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="count"/>
</output>
<!-- 6 -->
Summation
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="sum"/>
</output>
<!-- 234 -->
Average
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="avg"/>
</output>
<!-- 39 -->
Product
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="product"/>
</output>
<!-- 1650180096 -->
Minimum
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="min"/>
</output>
<!-- 16 -->
Maximum
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="max"/>
</output>
<!-- 62 -->
Range
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="range"/>
</output>
<!-- 46 -->
Median
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="median"/>
</output>
<!-- 40 -->
Arithmetic mean
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="mean-arith"/>
</output>
<!-- 39 -->
Geometric mean
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="mean-geo"/>
</output>
<!-- 34.375990770947 -->
Harmonic mean
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="mean-harm"/>
</output>
<!-- 29.867417906506 -->
Square mean
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="mean-sqr"/>
</output>
<!-- 42.891335566367 -->
Population standard deviation
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="stddev-pop"/>
</output>
<!-- 17.851237118661 -->
Sample standard deviation
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="stddev-samp"/>
</output>
<!-- 19.555050498529 -->
Population variance
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="var-pop"/>
</output>
<!-- 318.66666666667 -->
Sample variance
<array var="numbers">
<item>16</item>
<item>32</item>
<item>19</item>
<item>57</item>
<item>62</item>
<item>48</item>
</array>
<output>
<array:aggregate var="numbers" type="var-samp"/>
</output>
<!-- 382.4 -->