```sql
CREATE TABLE t (item_id UInt64, price_sold Float32, date Date) ENGINE MergeTree ORDER BY item_id;
SELECT id, yago FROM (SELECT item_id AS id, materialize([arrayJoin([NULL, NULL]), NULL AS x, arrayJoin([0.9998999834060669, NULL, NULL, NULL]), arrayJoin([1048577, -inf, 100.0000991821289, NULL])]), SUM(price_sold) AS recent FROM t WHERE and(date >= NULL) GROUP BY 1023, id WITH TOTALS) AS ll FULL OUTER JOIN (SELECT item_id AS id, SUM(price_sold) AS yago FROM t WHERE (date >= '2018-12-17') AND (date <= '2019-03-10') GROUP BY id WITH TOTALS) AS rr USING (id);
```
```sql
SELECT
    id,
    yago
FROM 
(
    SELECT
        item_id AS id,
        materialize([arrayJoin([NULL, NULL]), NULL AS x, arrayJoin([0.9998999834060669, NULL, NULL, NULL]), arrayJoin([1048577, -inf, 100.0000991821289, NULL])]),
        SUM(price_sold) AS recent
    FROM t
    WHERE and(date >= NULL)
    GROUP BY
        1023,
        id
        WITH TOTALS
) AS ll
FULL OUTER JOIN 
(
    SELECT
        item_id AS id,
        SUM(price_sold) AS yago
    FROM t
    WHERE (date >= '2018-12-17') AND (date <= '2019-03-10')
    GROUP BY id
        WITH TOTALS
) AS rr USING (id)

Query id: 308fbfd9-aed7-4de6-9f34-843c909b9243


Received exception from server (version 21.1.1):
Code: 49. DB::Exception: Received from localhost:9000. DB::Exception: Invalid number of rows in Chunk column Float64 position 1: expected 32, got 1. 

```
#include <Interpreters/join_common.h>
#include <Interpreters/TableJoin.h>
#include <Interpreters/ActionsDAG.h>
#include <Columns/ColumnNullable.h>
#include <Columns/ColumnLowCardinality.h>
#include <DataTypes/DataTypeNullable.h>
#include <DataTypes/DataTypeLowCardinality.h>
#include <DataTypes/getLeastSupertype.h>
#include <DataStreams/materializeBlock.h>
#include <IO/WriteHelpers.h>
namespace DB
{
namespace ErrorCodes
{
    extern const int TYPE_MISMATCH;
    extern const int LOGICAL_ERROR;
}
namespace
{
void changeNullability(MutableColumnPtr & mutable_column)
{
    ColumnPtr column = std::move(mutable_column);
    if (const auto * nullable = checkAndGetColumn<ColumnNullable>(*column))
        column = nullable->getNestedColumnPtr();
    else
        column = makeNullable(column);
    mutable_column = IColumn::mutate(std::move(column));
}
ColumnPtr changeLowCardinality(const ColumnPtr & column, const ColumnPtr & dst_sample)