if (aggregateType == Aggregate.COUNT) { if (readIf("*")) { r = new Aggregate(Aggregate.COUNT_ALL, null, currentSelect, false); } else { if (on instanceof Wildcard && !distinct) { r = new Aggregate(Aggregate.COUNT_ALL, null, currentSelect, false); } else { r = new Aggregate(Aggregate.COUNT, on, currentSelect, distinct); Aggregate agg = new Aggregate(Aggregate.GROUP_CONCAT, readExpression(), currentSelect, distinct); if (readIf("ORDER")) { read("BY"); agg.setGroupConcatOrder(parseSimpleOrderList()); agg.setGroupConcatSeparator(readExpression()); r = new Aggregate(aggregateType, readExpression(), currentSelect, distinct);
private int getAggregateType(String name) { if (!identifiersToUpper) { // if not yet converted to uppercase, do it now name = StringUtils.toUpperEnglish(name); } return Aggregate.getAggregateType(name); }
o.expression = o.expression.optimize(session); groupConcatSort = initOrder(session); throw DbException.get(ErrorCode.SUM_OR_AVG_ON_WRONG_DATATYPE_1, getSQL()); } else { dataType = DataType.getAddProofType(dataType); case AVG: if (!DataType.supportsAdd(dataType)) { throw DbException.get(ErrorCode.SUM_OR_AVG_ON_WRONG_DATATYPE_1, getSQL());
switch (type) { case GROUP_CONCAT: return getSQLGroupConcat(); case COUNT_ALL: return "COUNT(*)";
updateAggregate0(session); return;
HashMap<Expression, Object> group = select.getCurrentGroup(); if (group == null) { throw DbException.get(ErrorCode.INVALID_USE_OF_AGGREGATE_FUNCTION_1, getSQL());
switch (type) { case GROUP_CONCAT: return getSQLGroupConcat(); case COUNT_ALL: return "COUNT(*)";