Class OSQLFunctionVariance
java.lang.Object
com.orientechnologies.orient.core.sql.functions.OSQLFunctionAbstract
com.orientechnologies.orient.core.sql.functions.stat.OSQLFunctionVariance
- All Implemented Interfaces:
OSQLFunction
- Direct Known Subclasses:
OSQLFunctionStandardDeviation
Compute the variance estimation for a given field.
This class uses the Weldford's algorithm (presented in Donald Knuth's Art of Computer Programming) to avoid multiple distribution values' passes. When executed in distributed mode it uses the Chan at al. pairwise variance algorithm to merge the results.
References
- Cook, John D. Accurately
computing running variance.
- Knuth, Donald E. (1998) The Art of Computer Programming, Volume 2: Seminumerical
Algorithms, 3rd Edition.
- Welford, B. P. (1962) Note on a method for calculating corrected sums of squares and
products. Technometrics
- Chan, Tony F.; Golub, Gene H.; LeVeque, Randall J. (1979), Parallel Algorithm.
- Author:
- Fabrizio Fortino
-
Field Summary
FieldsFields inherited from class com.orientechnologies.orient.core.sql.functions.OSQLFunctionAbstract
maxParams, minParams, name -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanA function can make calculation on several records before returning a result.execute(Object iThis, OIdentifiable iCurrentRecord, Object iCurrentResult, Object[] iParams, OCommandContext iContext) Process a record.getResult(OCommandContext ctx) Only called when function aggregates results after all records have been passed to the function.Returns a convenient SQL String representation of the function.mergeDistributedResult(List<Object> resultsToMerge) This method correspond to distributed query executionMethods inherited from class com.orientechnologies.orient.core.sql.functions.OSQLFunctionAbstract
config, filterResult, getDatabase, getDistributedStorageId, getMaxParams, getMinParams, getName, getSingleItem, getSingleProperty, returnDistributedResult, setResult, shouldMergeDistributedResult, toString
-
Field Details
-
NAME
- See Also:
-
-
Constructor Details
-
OSQLFunctionVariance
public OSQLFunctionVariance() -
OSQLFunctionVariance
-
-
Method Details
-
execute
public Object execute(Object iThis, OIdentifiable iCurrentRecord, Object iCurrentResult, Object[] iParams, OCommandContext iContext) Description copied from interface:OSQLFunctionProcess a record.iCurrentRecord- : current recordiCurrentResult- TODOiParams- : function parameters, number is ensured to be within minParams and maxParams.iContext- : object calling this function- Returns:
- function result, can be null. Special cases : can be null if function aggregate results, can be null if function filter results : this mean result is excluded
-
aggregateResults
public boolean aggregateResults()Description copied from interface:OSQLFunctionA function can make calculation on several records before returning a result.Example of such function : sum, count, max, min ...
The final result of the aggregation is obtain by calling
OSQLFunction.getResult(OCommandContext)- Specified by:
aggregateResultsin interfaceOSQLFunction- Overrides:
aggregateResultsin classOSQLFunctionAbstract- Returns:
- true if function aggregate results
-
getResult
Description copied from interface:OSQLFunctionOnly called when function aggregates results after all records have been passed to the function.- Specified by:
getResultin interfaceOSQLFunction- Overrides:
getResultin classOSQLFunctionAbstract- Parameters:
ctx- TODO- Returns:
- Aggregation result
-
mergeDistributedResult
Description copied from interface:OSQLFunctionThis method correspond to distributed query execution- Specified by:
mergeDistributedResultin interfaceOSQLFunction- Overrides:
mergeDistributedResultin classOSQLFunctionAbstract- Parameters:
resultsToMerge- is the results that comes from different nodes- Returns:
- is the valid merged result
-
getSyntax
Description copied from interface:OSQLFunctionReturns a convenient SQL String representation of the function.Example :
myFunction( param1, param2, [optionalParam3])
This text will be used in exception messages.
- Returns:
- String , never null.
-