codice:
update tabella set flag = 1
where tabella.id in (
select tab1.id
from tabella as tab1
where num = (select min(num) from tabella as tab2 where tab1.nome = tab2.nome));
Per prudenza testa la query su una copia di backup della tabella.

Sull'utilità e la correttezza di ciò che vuoi fare ho i miei dubbi. Se il valore minore relativo a un gruppo cambia ti ritrovi dati non consistenti.
Se invece i dati sono statici tale flag è comunque inutile, visto che i record possono essere estratti in qualsiasi momento con una select.