**Describe the issue**
```
Code: 47. DB::Exception: Received from localhost:9000. DB::Exception: Missing columns: 'total_byte' while processing query: 'SELECT name, total_bytes FROM system.tables WHERE total_byte > 1000000000 ORDER BY total_bytes DESC', required columns: 'name' 'total_bytes' 'total_byte', maybe you meant: ['name','total_bytes','total_bytes']. (UNKNOWN_IDENTIFIER)
```

The name `total_bytes` is duplicated.

The message should be written in normal English, like:

`maybe you meant 'this', 'that' or 'whatever'`
instead of
`maybe you meant ['this', 'that', 'whatever']`
}
    
    
    if (!has_aggregate)
    {
        for (UInt64 i = 0; i < pushed_children; i++)
            into.children.pop_back();
        into.children.push_back(expr);
        pushed_children = 1;
    }
    return {has_aggregate, pushed_children};
}
/** Expand GROUP BY ALL by extracting all the SELECT-ed expressions that are not aggregate functions.
  *
  * For a special case that if there is a function having both aggregate functions and other fields as its arguments,
  * the `GROUP BY` keys will contain the maximum non-aggregate fields we can extract from it.
  *
  * Example:
  * SELECT substring(a, 4, 2), substring(substring(a, 1, 2), 1, count(b)) FROM t GROUP BY ALL
  * will expand as
  * SELECT substring(a, 4, 2), substring(substring(a, 1, 2), 1, count(b)) FROM t GROUP BY substring(a, 4, 2), substring(a, 1, 2)
  */
void expandGroupByAll(ASTSelectQuery * select_query)
{
    auto group_expression_list = std::make_shared<ASTExpressionList>();
    for (const auto & expr : select_query->select()->children)
        recursivelyCollectMaxOrdinaryExpressions(expr, *group_expression_list);
    select_query->setExpression(ASTSelectQuery::Expression::GROUP_BY, group_expression_list);
}
std::vector<const ASTFunction *> getAggregates(ASTPtr & query, const ASTSelectQuery & select_query)