private void fillAggregationDistinctSelectItemSegment(final AggregationDistinctSelectItemSegment selectItemSegment, final SelectStatement selectStatement) { selectStatement.getItems().add( new AggregationDistinctSelectItem(selectItemSegment.getType(), selectItemSegment.getInnerExpression(), selectItemSegment.getAlias(), selectItemSegment.getDistinctExpression())); Optional<String> derivedAlias = Optional.absent(); if (DerivedAlias.isDerivedAlias(selectItemSegment.getAlias().get())) { derivedAlias = Optional.of(selectItemSegment.getAlias().get()); } selectStatement.getSQLTokens().add(new AggregationDistinctToken(selectItemSegment.getStartIndex(), selectItemSegment.getStopIndex(), selectItemSegment.getDistinctExpression(), derivedAlias)); }