SELECT species, COUNT(*) as Group, (SELECT COUNT(*) FROM animals) as Window FROM animals GROUP BY species а что мешает вот так тогда написать оО ?)
причем тут угадал оО. Это же типовой запрос, будет три столбца, первый с видом животного, второй кол-во для группы и кол-во для оконки. Хотите сказать результат будет иным ? О...
а что, таблицу разбить изначально не проще разве ?
какие условия стоят для проверки того, какие записи обновлять ? На чем основаны ?