protected String rewriteGroupByClause(Query query, GroupByClause groupByClause) {
   StringBuilder sb = new StringBuilder();
   if (groupByClause.getItemCount() > 0) {
     sb.append(AbstractQueryClause.PREFIX_GROUP_BY);
     List<GroupByItem> items = groupByClause.getItems();
     for (int i = 0; i < items.size(); i++) {
       GroupByItem item = items.get(i);
       if (i != 0) {
         sb.append(AbstractQueryClause.DELIM_COMMA);
       }
       sb.append(rewriteGroupByItem(query, item));
     }
   }
   return sb.toString();
 }