МВ табличку и заполнить его дефолтным значением из другой колонки с преобразованием типа?
Насколько я понимаю это делается как-то через CAST, но не могу победить синтаксис
так вы пишите как у вас не получается. И зачем вам AggregateFunction для argMax? Используйте SimpleAggregateFunction - тут не нужно -State указывать.
Ну смотрите, есть МВ табличка, там есть поле token_states типа AggregateFunction(argMax, String, Datetime64(3)) и нужно создать второе поле `token_states_`` типа AggregateFunction(argMax, UUID, Datetime64(3))
Так вы ответите на вопрос зачем вам именно AggregateFunction?
Я хочу в итоге удалить столбец token_states и заменить его на token_states_1
(для истории) Короче правдами-неправдами при помощи Бориса я смог сделать так, чтобы обработать строки не UUID подобные create table b1 (id UInt64, a AggregateFunction(argMax, String, DateTime64(3))) engine = AggregatingMergeTree order by id; insert into b1(id,a) select 4, argMaxState('12345678-9ABC-9ABC-9ABC-123456789ABC',now64()); insert into b1(id,a) select 5, argMaxState('123-9ABC-9ABC-9ABC-123456789ABC',now64()); alter table b1 add column c AggregateFunction(argMax, UUID, DateTime64(3)); alter table b1 UPDATE c = initializeAggregation( 'argMaxState', toUUIDOrZero(finalizeAggregation(a)), reinterpret(reverse(substr(reverse(cast(a, 'String')), 1, 8)), 'DateTime64(3)')) where 1=1; alter table b1 drop column a; select finalizeAggregation(c), * from b1;
Обсуждают сегодня