Son sempre perplesso.
Comunque, prova ad adattare questa query al tuo contesto, in modo da avere per ogni riga il conteggio totale
codice:
select tabella.*,tab.quanti from tabella
inner join (select count(nome_campo)as quanti from tabella) as tab
Se il risultato è quello atteso prosegui così
codice:
update tabella
left join
(
select tabella.*,tab.quanti from tabella
inner join (select count(nome_campo)as quanti from tabella) as tab) as t
on tabella.id = t.id
set tabella.nome_campo =
case
when quanti > 3 then 'rosso'
else tabella.nome_campo
end