Du är väldigt nära den sista frågan. Följande hittar en läge:
SELECT value, occurs
FROM (SELECT value,count(*) as occurs
FROM t200
GROUP BY `value`
LIMIT 1
) T1
Jag tror dock att din fråga handlade om flera lägen:
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
);
EDIT:
Detta är mycket enklare i nästan vilken annan databas som helst. MySQL stöder varken with inte heller fönster/analytiska funktioner.
Din fråga (visas nedan) gör inte vad du tror att den gör:
SELECT value, occurs
FROM (SELECT value, count(*) as occurs
FROM t200
GROUP BY `value`
) T1
HAVING occurs = max(occurs) ;
Det sista having sats hänvisar till variabeln occurs men använder max(occurs) . På grund av användningen av max(occurs) detta är en aggregeringsfråga som returnerar en rad och sammanfattar alla rader från underfrågan.
Variabeln occurs används inte för gruppering. Så, vilket värde använder MySQL? Den använder en godtycklig värde från en av raderna i underfrågan. Detta godtyckliga värde kanske matchar eller inte. Men värdet kommer bara från en rad. Det finns ingen iteration över det.