Вот если бы group_num не повторялись, это было бы просто sum(ns) over (partition by group_num), но у вас там группы повторяются. Я бы поигрался с lag/lead, чтобы границы групп выделить, но нужно понимать, как упорядочиваются данные (это то, о чём писал Yaroslav Schekin)