**Describe what's wrong**

In case of using `optimize_functions_to_subcolumns` ClickHouse doesn't use alias for column name.

**How to reproduce**

ClickHouse 21.13

```
CREATE TABLE test
(
    `key` UInt32,
    `value` Nullable(UInt32)
)
ENGINE = MergeTree
ORDER BY key

INSERT INTO test SELECT
    number,
    NULL
FROM numbers(10000000);


SELECT count(value) AS a
FROM test
SETTINGS optimize_functions_to_subcolumns = 0

┌─a─┐
│ 0 │
└───┘

1 rows in set. Elapsed: 0.028 sec. Processed 32.50 million rows, 162.52 MB (1.15 billion rows/s., 5.74 GB/s.)

SELECT count(value) AS a
FROM test
SETTINGS optimize_functions_to_subcolumns = 1

┌─sum(not(value.null))─┐
│                    0 │
└──────────────────────┘

1 rows in set. Elapsed: 0.032 sec. Processed 32.50 million rows, 32.50 MB (1.00 billion rows/s., 1.00 GB/s.)
```

**Expected behavior**

ClickHouse should use alias name.


#include <Interpreters/RewriteFunctionToSubcolumnVisitor.h>
#include <DataTypes/NestedUtils.h>
#include <DataTypes/DataTypeTuple.h>
#include <Parsers/ASTIdentifier.h>
#include <Parsers/ASTLiteral.h>
#include <Parsers/ASTFunction.h>
namespace DB
{
namespace
{
ASTPtr transformToSubcolumn(const String & name_in_storage, const String & subcolumn_name)
{
    return std::make_shared<ASTIdentifier>(Nested::concatenateName(name_in_storage, subcolumn_name));
}
ASTPtr transformEmptyToSubcolumn(const String & name_in_storage, const String & subcolumn_name)
{
    auto ast = transformToSubcolumn(name_in_storage, subcolumn_name);
    return makeASTFunction("equals", ast, std::make_shared<ASTLiteral>(0u));
}
ASTPtr transformNotEmptyToSubcolumn(const String & name_in_storage, const String & subcolumn_name)
{
    auto ast = transformToSubcolumn(name_in_storage, subcolumn_name);
    return makeASTFunction("notEquals", ast, std::make_shared<ASTLiteral>(0u));
}
ASTPtr transformIsNotNullToSubcolumn(const String & name_in_storage, const String & subcolumn_name)
{
    auto ast = transformToSubcolumn(name_in_storage, subcolumn_name);
    return makeASTFunction("not", ast);
}
ASTPtr transformCountNullableToSubcolumn(const String & name_in_storage, const String & subcolumn_name)