code: func (p *basePhysicalAgg) ExplainInfo() string {
  	buffer := bytes.NewBufferString("")
  	if len(p.GroupByItems) > 0 {
  		fmt.Fprintf(buffer, "group by:%s, ",
  			expression.SortedExplainExpressionList(p.GroupByItems))
  	}
  	if len(p.AggFuncs) > 0 {
  		buffer.WriteString("funcs:")
  		for i, agg := range p.AggFuncs {
  			buffer.WriteString(aggregation.ExplainAggFunc(agg))
  			if i+1 < len(p.AggFuncs) {
  				buffer.WriteString(", ")
  			}
  		}
  	}
  	return buffer.String()
  }
docs: // ExplainInfo implements PhysicalPlan interface.