Zum Hauptinhalt springen

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

NameTypeDescriptionDefined By
varvarVariable name array:aggregate
var_resultvarResult variable name array:aggregate
typetypeAggregation type array:aggregate

Multidimensional

NameTypeDescriptionDefined By
keystringKey array:aggregate

Results

BindingTypePredicate
var_resultN/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 -->