Aggregate array items
XML
<array:aggregate var="var" var_result="var" type="count" key="string"/>
<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 values that are not simply castable to numbers 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
XML
<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
XML
<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
XML
<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
XML
<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
XML
<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
XML
<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
XML
<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
XML
<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
XML
<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
XML
<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
XML
<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 -->
Quadratic/Square mean
XML
<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
XML
<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
XML
<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
XML
<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
XML
<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 -->