Подтвердить что ты не робот

Найти наиболее частое значение в столбце SQL

Как найти наиболее частое значение в данном столбце таблицы SQL?

Например, для этой таблицы он должен возвращать two, поскольку это наиболее частое значение:

one
two
two
three
4b9b3361

Ответ 1

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 наиболее распространенных значений столбца.

Ответ 2

Попробуйте что-то вроде:

SELECT       `column`
    FROM     `your_table`
    GROUP BY `column`
    ORDER BY COUNT(*) DESC
    LIMIT    1;

Ответ 3

Рассмотрим имя таблицы как 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 - псевдоним.

Ответ 4

Ниже в базе данных 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
..
..

Ответ 5

Для использования с SQL Server.

Поскольку в этом нет поддержки команд предела.

Yo может использовать команду top 1, чтобы найти максимальное значение в конкретном столбце в этом случае (значение)

SELECT top1 
    `value`,
    COUNT(`value`) AS `value_occurrence` 
FROM     
    `my_table`
GROUP BY 
    `value`
ORDER BY 
    `value_occurrence` DESC;

Ответ 6

Предполагаемая таблица: "SalesLT.Customer", а колонка, которую вы пытаетесь выяснить, - "CompanyName", а AggCompanyName - это псевдоним.

Select CompanyName, Count(CompanyName) as AggCompanyName from SalesLT.Customer
group by CompanyName
Order By Count(CompanyName) Desc;

Ответ 7

Если вы не можете использовать 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

Ответ 8

Если у вас есть столбец идентификаторов, и вы хотите найти наиболее повторяющуюся категорию из другого столбца для каждого идентификатора, то вы можете использовать запрос ниже,

Таблица:

enter image description here

Запрос:

ВЫБЕРИТЕ ID, КАТЕГОРИЮ, СЧЕТ (*) КАК ЧАСТОТА ИЗ ГРУППЫ ТАБЛИЦЫ ПО 1,2 КВАЛИФИКАЦИИ ROW_NUMBER() ПЕРЕВЕРНУТЬСЯ (РАЗДЕЛЕНИЕ ПО ИДЕНТИФИКАЦИИ ПО ЧАСТИ FREQ DESC) = 1;

Результат:

enter image description here

Ответ 9

Один из способов, который мне нравится использовать:

выберите COUNT() как VAR1 из Table_Name

группа по

заказ по VAR1 desc

предел 1