SELECT total, length(parts_to_do_names), running_for_seconds, formatReadableSize(total_bytes), formatReadableSize(todo_bytes), round(100 - todo_bytes / total_bytes * 100, 2), latest_fail_reason, sum(part.bytes_on_disk) as total_bytes, sumIf(part.bytes_on_disk, has(parts_to_do_names, part.name)) AS todo_bytes FROM ( SELECT count() AS total, groupArrayArray(parts_to_do_names) AS parts_to_do_names, now() - min(create_time) AS running_for_seconds, anyIf(latest_fail_reason, latest_fail_reason != '') AS latest_fail_reason FROM system.mutations WHERE not is_done AND table = 'events_v2' AND command ILIKE '%sessions_dict%' ) AS mut CROSS JOIN ( SELECT name, bytes_on_disk FROM system.parts WHERE table = 'events_v2' AND active AND partition >= '<%= @min_partition %>' AND partition <= '<%= @max_partition %>' ) AS part GROUP BY mut.total, mut.parts_to_do_names, mut.running_for_seconds, mut.latest_fail_reason