在SQL列中查找最常见的值

Jak*_*ake 113 mysql sql

如何在SQL表的给定列中找到最常用的值?

例如,对于此表,它应该返回,two因为它是最常见的值:

one
two
two
three
Run Code Online (Sandbox Code Playgroud)

Mih*_*ncu 164

SELECT       `column`,
             COUNT(`column`) AS `value_occurrence` 
    FROM     `my_table`
    GROUP BY `column`
    ORDER BY `value_occurrence` DESC
    LIMIT    1;
Run Code Online (Sandbox Code Playgroud)

替换columnmy_table.1如果要查看列的N最常见值,请增加.

  • 如果多个值出现相同的次数(最大值)会怎么样?在这种情况下,如果三个也出现了两次?LIMIT 1只显示一条记录 (6认同)
  • 如果我也想从“my_table”中选择其他字段,我该怎么办?换句话说,另一个值; (2认同)
  • @mustafa1993 `从 my_table GROUP BY 值中选择 * ORDER BY count(*) DESC;` (2认同)

Mat*_*Mat 39

尝试类似的东西:

SELECT       `column`
    FROM     `your_table`
    GROUP BY `column`
    ORDER BY COUNT(*) DESC
    LIMIT    1;
Run Code Online (Sandbox Code Playgroud)

  • 我不知道你可以直接在`ORDER BY`中使用`COUNT(*)`.我知道有一些关于`GROUP BY` /`HAVING`和聚合列的限制,我总是认为不行. (3认同)

小智 19

让我们将表名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)
Run Code Online (Sandbox Code Playgroud)

nor是别名.


Swa*_*r C 6

以下查询在SQL Server数据库中似乎对我有用:

select column, COUNT(column) AS MOST_FREQUENT
from TABLE_NAME
GROUP BY column
ORDER BY COUNT(column) DESC
Run Code Online (Sandbox Code Playgroud)

结果:

column          MOST_FREQUENT
item1           highest count
item2           second highest 
item3           third higest
..
..
Run Code Online (Sandbox Code Playgroud)