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