select item_id, count(*)
from table
group by item_id;
даст вам весь список.
Внизу 3:
select item_id
from (
select item_id, count(*) as cnt
from table
group by item_id
order by cnt
) where rownum < 4;
Вверху 3:
select item_id
from (
select item_id, count(*) as cnt
from table
group by item_id
order by cnt desc
) where rownum < 4;
ПРИМЕЧАНИЕ: этот синтаксис предназначен для Oracle.Используйте LIMIT, если у вас MySql или TOP, если у вас есть sql-сервер.
ORDER BY отсортирует ваши результаты.Порядок возрастания по умолчанию, поэтому используйте desc, если хотите получить наибольшее значение.
GROUP BY (при использовании с count (*)) будет подсчитывать группы похожих объектов
где rownum <4: Это оракулы имели ОГРАНИЧЕНИЕ.Возвращает первые 3 строки выполненного запроса.Где предложения выполняются перед предложениями порядка, поэтому вы должны сделать это как вложенный запрос.</p>