private object Aggregate(BasicFieldInfo field, AggregateType aggregateType, bool isDistinct) { if (!_mapping.Equals(field.TableMapping)) { throw new LightDataException(RE.FieldIsNotMatchDataMapping); } return(_context.Aggregate(field.DataField, aggregateType, _query, isDistinct, _level)); }
/// <summary> /// 聚合统计该字段的总和 /// </summary> /// <param name="field">统计字段</param> /// <param name="isDistinct">是否去重</param> /// <returns>结果</returns> public object Sum(BasicFieldInfo field, bool isDistinct) { return(Aggregate(field, AggregateType.SUM, isDistinct)); }
/// <summary> /// 聚合统计该字段的总和 /// </summary> /// <param name="field">统计字段</param> /// <returns>结果</returns> public object Sum(BasicFieldInfo field) { return(Sum(field, false)); }
/// <summary> /// 聚合统计该字段的平均值 /// </summary> /// <param name="field">统计字段</param> /// <param name="isDistinct">是否去重</param> /// <returns>结果</returns> public object Avg(BasicFieldInfo field, bool isDistinct) { return(Aggregate(field, AggregateType.AVG, isDistinct)); }
/// <summary> /// 聚合统计该字段的平均值 /// </summary> /// <param name="field">统计字段</param> /// <returns>结果</returns> public object Avg(BasicFieldInfo field) { return(Avg(field, false)); }
/// <summary> /// 聚合统计该字段的最小值 /// </summary> /// <param name="field">统计字段</param> /// <param name="isDistinct">是否去重</param> /// <returns>结果</returns> public object Min(BasicFieldInfo field, bool isDistinct) { return(Aggregate(field, AggregateType.MIN, isDistinct)); }
/// <summary> /// 聚合统计该字段的最小值 /// </summary> /// <param name="field">统计字段</param> /// <returns>结果</returns> public object Min(BasicFieldInfo field) { return(Min(field, false)); }
/// <summary> /// 聚合统计改字段的数量 /// </summary> /// <param name="field">统计字段</param> /// <param name="isDistinct">是否去重</param> /// <returns></returns> public object CountField(BasicFieldInfo field, bool isDistinct) { return(Aggregate(field, AggregateType.COUNT, isDistinct)); }
/// <summary> /// 聚合统计改字段的数量 /// </summary> /// <param name="field">统计字段</param> /// <returns>结果</returns> public object CountField(BasicFieldInfo field) { return(CountField(field, false)); }