ВА
1) Скопировать distinct записи во временную таблицу
2) Удалить все дублирующиеся записи из оригинальой таблицы - ALTER .. DELETE ... GROUP BY id HAVING count() > 1
3) Скопировать записи из временной таблицы обратно в оригинальную.
Но при ALTER .. DELETE WHERE id IN (select id from test GROUP BY id HAVING count() > 1) наткнулся на такое поведение, что кликхаус удаляет не все записи с одинаковым id. E.g. в таблице было 2 записи с id = 1, а после alter delete осталась 1. Поскольку это не ожидаемое поведение, решил обратится сюда за помощью! Спасибо!