**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']`
result.collectUsedColumns(query, true, settings.query_plan_optimize_primary_key);
        }
    }
    
    if (result.has_virtual_shard_num)
    {
        RewriteShardNumVisitor::Data data_rewrite_shard_num;
        RewriteShardNumVisitor(data_rewrite_shard_num).visit(query);
    }
    result.ast_join = select_query->join();
    if (result.optimize_trivial_count)
        result.optimize_trivial_count = settings.optimize_trivial_count_query &&
            !select_query->groupBy() && !select_query->having() &&
            !select_query->sampleSize() && !select_query->sampleOffset() && !select_query->final() &&
            (tables_with_columns.size() < 2 || isLeft(result.analyzed_join->kind()));
    
    RewriteOrderByVisitor::Data data;
    RewriteOrderByVisitor(data).visit(query);
    return std::make_shared<const TreeRewriterResult>(result);
}
TreeRewriterResultPtr TreeRewriter::analyze(
    ASTPtr & query,
    const NamesAndTypesList & source_columns,
    ConstStoragePtr storage,
    const StorageSnapshotPtr & storage_snapshot,
    bool allow_aggregations,
    bool allow_self_aliases,
    bool execute_scalar_subqueries) const
{
    if (query->as<ASTSelectQuery>())