如何在SQL表的给定列中找到最常用的值?
例如,对于此表,它应返回two
,因为它是最常见的值:
one
two
two
three
答案 0 :(得分:153)
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
。
答案 1 :(得分:36)
尝试类似:
SELECT `column`
FROM `your_table`
GROUP BY `column`
ORDER BY COUNT(*) DESC
LIMIT 1;
答案 2 :(得分:17)
我们将表名称视为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
是别名。
答案 3 :(得分:6)
以下查询在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
..
..
答案 4 :(得分:3)
用于SQL Server。
由于没有限制命令支持。
Yo可以使用top 1命令查找特定列中的最大值(在这种情况下)(值)
SELECT top1
`value`,
COUNT(`value`) AS `value_occurrence`
FROM
`my_table`
GROUP BY
`value`
ORDER BY
`value_occurrence` DESC;
答案 5 :(得分:1)
假设表格是' SalesLT.Customer
'你试图找出的专栏是' CompanyName
'而AggCompanyName
是别名。
Select CompanyName, Count(CompanyName) as AggCompanyName from SalesLT.Customer
group by CompanyName
Order By Count(CompanyName) Desc;
答案 6 :(得分: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
答案 7 :(得分:0)
如果您有一个ID列,并且想从另一个列中为每个ID查找最重复的类别,则可以使用以下查询,
表格:
查询:
选择ID,类别,COUNT(*)作为频率 从表 1,2组 合格ROW_NUMBER()OVER(按ID排序或按FREQ DESC排序)= 1;
结果:
答案 8 :(得分:-1)
我喜欢使用的一种方式是:
从表名称中选择 ,COUNT( )作为VAR1
按
分组按VAR1 desc排序
限制1