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

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

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

one
two
two
three
96 голосов | спросил Jake 2 ndEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 02 Sep 2012 15:29:46 +0400 2012, 15:29:46

6 ответов


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

ответил Mihai Stancu 2 ndEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 02 Sep 2012 15:34:06 +0400 2012, 15:34:06
0

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

SELECT       `column`
    FROM     `your_table`
    GROUP BY `column`
    ORDER BY COUNT(*) DESC
    LIMIT    1;
ответил Mat 2 ndEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 02 Sep 2012 15:33:47 +0400 2012, 15:33:47
0

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

ответил naveen 3 AM00000070000000631 2013, 07:49:06
0

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

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

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

SELECT top1 
    `value`,
    COUNT(`value`) AS `value_occurrence` 
FROM     
    `my_table`
GROUP BY 
    `value`
ORDER BY 
    `value_occurrence` DESC;
ответил Muneeb Hassan 27 ThuEurope/Moscow2012-12-27T03:26:24+04:00Europe/Moscow12bEurope/MoscowThu, 27 Dec 2012 03:26:24 +0400 2012, 03:26:24
0

Предполагается, что Таблица - это SalesLT.Customer, а столбец, который вы пытаетесь выяснить - это CompanyNameAggCompanyName - псевдоним.

Select CompanyName, Count(CompanyName) as AggCompanyName from SalesLT.Customer
group by CompanyName
Order By Count(CompanyName) Desc;
ответил Muzammel Mukul 28 MonEurope/Moscow2015-12-28T10:28:05+03:00Europe/Moscow12bEurope/MoscowMon, 28 Dec 2015 10:28:05 +0300 2015, 10:28:05
0

Если вы не можете использовать 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
ответил Roadkill 24 22015vEurope/Moscow11bEurope/MoscowTue, 24 Nov 2015 19:59:39 +0300 2015, 19:59:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132