MySQL-запрос, чтобы найти наиболее повторяющееся значение
У меня есть таблица с несколькими строками, для каждой из них мне нужно знать наиболее распространенное значение.
Пример:
row_1 имеет
car
boat
car
car
truck
truck
plane
car
car
как его значения.
Мне нужно знать, что является наиболее распространенным значением (в данном случае автомобилем).
У меня есть несколько идей, но поскольку я должен сделать это для 30 строк, мне нужен простой и неинтенсивный запрос.
Ответы
Ответ 1
Чтобы получить список значений и их количество:
select col_name, count(col_name) c from table
group by col_name
order by c desc;
Если вы хотите только самое общее значение:
select col_name, count(col_name) c from table
group by col_name
order by c desc
limit 1;
Ответ 2
Я написал запрос таким образом, чтобы, если есть больше элементов с таким же самым большим количеством вхождений, вы увидите их все, а не только один из них.
select item
from table
group by item
having count(item) = (
select count(item) as great
from table
group by item order by great desc limit 1)