Проблему решил следующим образом: у нас на входе есть
tuple(date, orders) AS start
.
Если мы хотим из него получить JSON, то нам нужно назвать его поля.
cast(tuple(date, orders), Tuple(date Date, orders UInt64)) AS namedTuple
Далее, преобразуем именованный кортеж в JSON объект.
namedTuple::JSON as jsonedTuple
Мы не можем сразу использовать JSON в groupArray - будет ошибка. Поэтому воспользуемся "хаком". Найдем супертип, который "кушает" и JSON и groupArray -> строка.
toString(jsonedTuple) as stringifiedJson
И вот в эту секунду мы можем сгрупировать наши JSON-строки.
groupArray(stringifiedJSON)
Итоговый код:
SELECT groupArray(toString(cast(tuple(date, orders), Tuple(date Date, orders UInt64))::JSON))
Решение выглядит грязновато. Но это единственное решение, которое я нашел для обхода этой проблемы.