Si vous souhaitez simplement mettre à jour votre table avec la priorité, cela ressemblerait à :
update my_table x
set popularity = ( select count(distinct state)
from my_table
where fruit = x.fruit )
Si vous souhaitez sélectionner les données, vous pouvez utiliser une requête analytique :
select state, fruit
, count(distinct state) over ( partition by fruit ) as popularity
from my_table
Cela fournit le nombre d'états distincts, par fruit.