21.7.3 throws an exception if `_sample_factor` is used in a query:
```
CREATE TABLE sessions
(
  `user_id` UInt64
)
ENGINE = MergeTree
ORDER BY user_id 
SAMPLE BY user_id;

insert into sessions values(1);

SELECT
    sum(user_id * _sample_factor) 
FROM sessions
SAMPLE 10000000

DB::Exception: Cannot find column `user_id` in source stream (version 21.8.1.7409 (official build))

SELECT
    sum(user_id) 
FROM sessions
SAMPLE 10000000

sum(user_id)
------------
           1
```
No exception on 21.6.5
{
    AnalysisResult result;
    const auto & settings = context->getSettingsRef();
    size_t total_parts = parts.size();
    auto part_values = MergeTreeDataSelectExecutor::filterPartsByVirtualColumns(data, parts, query_info.query, context);
    if (part_values && part_values->empty())
        return result;
    result.column_names_to_read = real_column_names;
    
    if (result.column_names_to_read.empty())
    {
        NamesAndTypesList available_real_columns = metadata_snapshot->getColumns().getAllPhysical();
        result.column_names_to_read.push_back(ExpressionActions::getSmallestColumn(available_real_columns));
    }
    metadata_snapshot->check(result.column_names_to_read, data.getVirtuals(), data.getStorageID());
    
    const auto & primary_key = metadata_snapshot->getPrimaryKey();
    Names primary_key_columns = primary_key.column_names;
    KeyCondition key_condition(query_info, context, primary_key_columns, primary_key.expression);
    if (settings.force_primary_key && key_condition.alwaysUnknownOrTrue())
    {
        throw Exception(
            ErrorCodes::INDEX_NOT_USED,
            "Primary key ({}) is not used and setting 'force_primary_key' is set.",
            fmt::join(primary_key_columns, ", "));
    }
    LOG_DEBUG(log, "Key condition: {}", key_condition.toString());
    const auto & select = query_info.query->as<ASTSelectQuery &>();
    MergeTreeDataSelectExecutor::filterPartsByPartition(
        parts, part_values, metadata_snapshot_base, data, query_info, context,