数据库中查询一列相同名称最多的sql语句怎么写

2025-01-21 11:28:53
推荐回答(3个)
回答1:

以表 table_a 的 col_a列, 为例,代码如下:


select  col_a from 
(select col_a,count(*) as 'cfsl' from table_a  group by col_a ) a
where cfsl in 
(select max(cfsl) from (select col_a,count(*) as 'cfsl' from  group by col_a ) b);

1、将相同的名称分组,统计重复次数为 'cfsl'。

2、用 MAX 函数 取 cfsl 最大对应的名称

以上方法各数据库可通用,如果是支持top函数的数据库 ,第二部可以使用 top,会简单一些。

回答2:

假设tab列为id

SELECT id, max(cnt)
FROM (SELECT id, count(*) AS cnt FROM tab GROUP BY id) t
那么这个id就是最多的那个
如果只要id
SELECT id
FROM (SELECT id, max(cnt)
FROM (SELECT id, count(*) AS cnt FROM tab GROUP BY id) t) t1

回答3:

查询表中登陆次数最多的用户
select top 1 userName,count(*) from UserLog
group by userName
order by count(*) desc