
op:avg( $outCol as item(), $inCol as item(), [$options as map:map?] ) as map:map
This function averages the non-null values of the column for the rows in the group or row set. The result is used for building the parameters used by the op:group-by function.
| Parameters | |
|---|---|
| $outCol | The name to be used for the aggregated column. |
| $inCol | The column to be aggregated. The column can be named with a string or a column function such as op:col, op:view-col, or op:schema-col, or constructed from an expression with the op:as function. |
| $options |
The options can take a values key with a 'distinct' value to average
the distinct values of the column.
|
xquery version "1.0-ml";
import module namespace op="http://marklogic.com/optic"
at "/MarkLogic/optic.xqy";
let $expenses := op:from-view("main", "expenses")
return $expenses
=> op:group-by("Category", op:avg("Average Amount", "Amount"))
=> op:order-by("Category")
=> op:result()
xquery version "1.0-ml";
(: using 'values' option to average distinct values of column :)
import module namespace op="http://marklogic.com/optic"
at "/MarkLogic/optic.xqy";
let $expenses := op:from-view("main", "expenses")
return $expenses
=> op:group-by("Category", op:avg("Average Amount", "Amount",map:entry("values","distinct")))
=> op:order-by("Category")
=> op:result()
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.