UNPKG

plywood

Version:
33 lines (32 loc) 1.57 kB
import { __extends } from "tslib"; import { ChainableUnaryExpression, Expression, } from './baseExpression'; import { Aggregate } from './mixins/aggregate'; var AverageExpression = (function (_super) { __extends(AverageExpression, _super); function AverageExpression(parameters) { var _this = _super.call(this, parameters, dummyObject) || this; _this._ensureOp('average'); _this._checkOperandTypes('DATASET'); _this._checkExpressionTypes('NUMBER'); _this.type = 'NUMBER'; return _this; } AverageExpression.fromJS = function (parameters) { return new AverageExpression(ChainableUnaryExpression.jsToValue(parameters)); }; AverageExpression.prototype._calcChainableUnaryHelper = function (operandValue, _expressionValue) { return operandValue ? operandValue.average(this.expression) : null; }; AverageExpression.prototype._getSQLChainableUnaryHelper = function (dialect, operandSQL, expressionSQL) { return "AVG(".concat(dialect.aggregateFilterIfNeeded(operandSQL, expressionSQL), ")"); }; AverageExpression.prototype.decomposeAverage = function (countEx) { var _a = this, operand = _a.operand, expression = _a.expression; return operand.sum(expression).divide(countEx ? operand.sum(countEx) : operand.count()); }; AverageExpression.op = 'Average'; return AverageExpression; }(ChainableUnaryExpression)); export { AverageExpression }; Expression.applyMixins(AverageExpression, [Aggregate]); Expression.register(AverageExpression);