Você está muito perto da última consulta. O seguinte encontra um modo:
SELECT value, occurs
FROM (SELECT value,count(*) as occurs
FROM t200
GROUP BY `value`
LIMIT 1
) T1
Acho que sua pergunta foi sobre vários modos:
SELECT value, occurs
FROM (SELECT value, count(*) as occurs
FROM t200
GROUP BY `value`
) T1
WHERE occurs = (select max(occurs)
from (select `value`, count(*) as occurs
from t200
group by `value`
) t
);
EDITAR:
Isso é muito mais fácil em quase qualquer outro banco de dados. MySQL não suporta nem
with nem funções de janela/analítica. Sua consulta (mostrada abaixo) não faz o que você pensa que está fazendo:
SELECT value, occurs
FROM (SELECT value, count(*) as occurs
FROM t200
GROUP BY `value`
) T1
HAVING occurs = max(occurs) ;
O
having final cláusula refere-se à variável occurs mas usa max(occurs) . Por causa do uso de max(occurs) esta é uma consulta de agregação que retorna uma linha, resumindo todas as linhas da subconsulta. A variável
occurs não está usando para agrupamento. Então, que valor o MySQL usa? Ele usa um método arbitrário valor de uma das linhas na subconsulta. Esse valor arbitrário pode corresponder ou não. Mas, o valor vem apenas de uma linha. Não há iteração sobre ele.