Найти наиболее частое значение в столбце SQL
Как я могу найти наиболее частое значение в данном столбце В таблице SQL?
например, для этой таблицы он должен вернуть two
так как это самое частое значение:
one
two
two
three
7 ответов:
SELECT `column`, COUNT(`column`) AS `value_occurrence` FROM `my_table` GROUP BY `column` ORDER BY `value_occurrence` DESC LIMIT 1;
заменить
column
иmy_table
. Увеличить1
Если вы хотите увидетьN
наиболее распространенные значения столбца.
попробуйте что-то вроде:
SELECT `column` FROM `your_table` GROUP BY `column` ORDER BY COUNT(*) DESC LIMIT 1;
рассмотрим имя таблицы
tblperson
и имя столбца в качествеcity
. Я хочу получить наиболее повторяющийся город из столбца город:select city,count(*) as nor from tblperson group by city having count(*) =(select max(nor) from (select city,count(*) as nor from tblperson group by city) tblperson)
здесь
nor
- это псевдоним.
ниже запрос, кажется, работает хорошо для меня в базе данных SQL Server:
select column, COUNT(column) AS MOST_FREQUENT from TABLE_NAME GROUP BY column ORDER BY COUNT(column) DESC
результат:
column MOST_FREQUENT item1 highest count item2 second highest item3 third higest .. ..
для использования с SQL Server.
поскольку в этом нет поддержки команд limit.
Yo может использовать команду top 1, чтобы найти максимальное значение в конкретном столбце В этом случае (значение)
SELECT top1 `value`, COUNT(`value`) AS `value_occurrence` FROM `my_table` GROUP BY `value` ORDER BY `value_occurrence` DESC;
предполагая, что таблица '
SalesLT.Customer
' и столбец, который вы пытаетесь выяснить, является 'CompanyName
иAggCompanyName
- это псевдоним.Select CompanyName, Count(CompanyName) as AggCompanyName from SalesLT.Customer group by CompanyName Order By Count(CompanyName) Desc;
Если вы не можете использовать LIMIT или LIMIT не является опцией для вашего инструмента запроса. Вместо этого вы можете использовать "ROWNUM", но вам понадобится дополнительный запрос:
SELECT FIELD_1, ALIAS1 FROM(SELECT FIELD_1, COUNT(FIELD_1) ALIAS1 FROM TABLENAME GROUP BY FIELD_1 ORDER BY COUNT(FIELD_1) DESC) WHERE ROWNUM = 1