В большинстве случаев избегайте использования FINAL. Общий подход заключается в использовании агрегирующих запросов, которые предполагают, что фоновые процессы движков семейства MergeTree ещё не случились (например, сами отбрасывают дубликаты).
О гспди, ReplacingMergeTree тоже гарантирует наличие дубликатов. А группировка на matview, - весьма рискованная затея. Ну, если только тебе железа не жалко :)
Ну и в matview тоже есть дубликаты, если со стороны приходят одни и те же записи. Ну ок, если ты считаешь, что для тебя это приемлимый костыль со своими рисками, то оставляй :)