Допустим, у меня есть простая таблица голосования с колоннамиВЫБРАТЬ строки с минимальным COUNT (*)
id(primaryKey),token(int),candidate(int),rank(int).
Я хочу, чтобы извлечь все строки, имеющие конкретный ранг, сгруппированных по кандидату и, самое главное только с минимальным кол (*). До сих пор я достиг
SELECT candidate, count(*) AS count
FROM voting
WHERE rank =1
AND candidate <200
GROUP BY candidate
HAVING count = min(count)
Но она возвращается пустой set.If я заменить мин (счет) с фактической минимальной стоимости она работает должным образом. Я также попытался
SELECT candidate,min(count)
FROM (SELECT candidate,count(*) AS count
FROM voting
where rank = 1
AND candidate < 200
group by candidate
order by count(*)
) AS temp
Но это привело только один ряд, у меня есть 3 строки с одинаковой кол мин, но с разной candidates.I хочет, чтобы вся эти 3 строки.
Может ли кто-нибудь помочь мне. Строки No.of с одинаковым значением подсчета (*) также помогут.
Образец довольно большой, поэтому я хочу показать некоторые фиктивные значения
1 $sampleToken1 101 1
2 $sampleToken2 102 1
3 $sampleToken3 103 1
4 $sampleToken4 102 1
Здесь, когда сгруппированы в соответствии с кандидатом есть 3 строки, сочетающие с COUNT (*) Результаты
candidate count(*)
101 1
103 1
102 2
I хотите, чтобы отображались верхние 2 строки, т. е. со счетчиком (*) = 1 или что-то среднее.
Пожалуйста, покажите некоторые входные выборки данных и желаемый выход –