чтоб их количество уменьшилось в два раза?
количество чего должно уменьшиться в два раза? количество колонок? если да ALTER TABLE ... DROP COLUMN ...
Значение какнтера в колонке в два раза. Переезжали на новые таблицы и задублировали вставку, думаем как порезать в два раза статистику обратно
ну попробовать сделать мутацию ALTER TABLE ... UPDATE column=column / 2
Оно разве сработает? Там же countState хранится
да, не сработает ну тогда только новая таблица INSERT INTO ... SELECT из исходной
я надеялся что вот так сработает CREATE TABLE t1 (name String, cnt AggregateFunction(count, UInt64)) ENGINE AggregatingMergeTree() ORDER BY name; INSERT INTO t1 SELECT concat('name', toString(number % 10)) name, countState(number) FROM numbers(1000) GROUP BY name; SELECT name, countMerge(cnt) FROM t1 GROUP BY name; SET mutations_sync=2; ALTER TABLE t1 UPDATE cnt = countState(countMerge(cnt) / 2) WHERE 1=1; SELECT name, countMerge(cnt) FROM t1 GROUP BY name; но нет =(
Я вот о том же думал. Жжжаль
если бы вы использовали SimpleAggregateFunction, то скорее всего проблем бы не возникло
ALTER TABLE t1 UPDATE cnt = initializeAggregation('countState',finalizeAggregation(cnt) / 2) WHERE 1=1;
и конечно это не работает select finalizeAggregation(initializeAggregation('countState', 13)); -- 1 и что самое плохое -- не должно
Да, забыл. count у нас же особенный.
Спасибо, а можно эту ошибку обойти каким то образом? Такое случается если использовать initializeAggregation Conversion from AggregateFunction(count, Float64) to AggregateFunction(count) is not supported
вы читайте чат дальше, это вообще неправильно все (ниже обсудили)
Обсуждают сегодня