code: func (a *aggregationPushDownSolver) addGbyCol(ctx sessionctx.Context, gbyCols []*expression.Column, cols ...*expression.Column) []*expression.Column {
  	for _, c := range cols {
  		duplicate := false
  		for _, gbyCol := range gbyCols {
  			if c.Equal(ctx, gbyCol) {
  				duplicate = true
  				break
  			}
  		}
  		if !duplicate {
  			gbyCols = append(gbyCols, c)
  		}
  	}
  	return gbyCols
  }
docs: // addGbyCol adds a column to gbyCols. If a group by column has existed, it will not be added repeatedly.