public string GetGroupFunction(GroupFunctionSegment groupSegment, bool withAlias, QueryBuildInfo buildInfo) { FieldSegment fieldSegment = groupSegment.SegmentToGroup; string sql = GetFieldName(fieldSegment, false, buildInfo); switch (groupSegment.GroupFunctionMode) { case GroupFunctionSegmentMode.Count: sql = " COUNT(" + sql + ") "; break; case GroupFunctionSegmentMode.Sum: sql = " SUM(" + sql + ") "; break; case GroupFunctionSegmentMode.CustFunc: sql = " " + groupSegment.CustFunction + "(" + sql + ") "; break; } if (withAlias) { sql = AppendAlias(sql, fieldSegment); } return(sql); }
private void ProcessGroup(StringBuilder sb, GroupFunctionSegment segment, QueryBuildInfo buildInfo) { string groupFunction = GetGroupFunction(segment, false, buildInfo); sb.Append(groupFunction); }
protected T BaseCount() { var segment = new GroupFunctionSegment(GroupFunctionSegmentMode.Count); return(AddSegment(segment)); }
protected T BaseCustFunc(string func) { var segment = new GroupFunctionSegment(func); return(AddSegment(segment)); }
protected T BaseSum() { var segment = new GroupFunctionSegment(GroupFunctionSegmentMode.Sum); return(AddSegment(segment)); }