如何获取某个id的列的MAX计数?

时间:2015-09-08 20:58:24

标签: mysql sql

我无法将其写成清晰的标题,所以首先让我澄清一下。

我有一个包含多个列的表,但只有两个相关列。

ID  ||  type
-------------
1   ||  5
1   ||  7
2   ||  6
2   ||  7
2   ||  7
2   ||  7
3   ||  5

我想要的是任何给定ID的类型7的MAX出现次数(不是我自己输入的ID,只是任何ID)

例如,上面的示例表的结果将是3(对于相同的id,3个类型7)。

有没有简单的方法可以做到这一点?我有一些想法,但所有想法都非常复杂且不必要很长,比如对每个ID进行单独查询并比较结果。

另外,如果这是一个重复的问题,我很抱歉,但我根本无法充分说出我的问题以找到相关信息。

1 个答案:

答案 0 :(得分:4)

最简单的方法是子查询:

select max(cnt)
from (select id, count(*) as cnt
      from table t
      where type = 7
      group by id
     ) t;

但是没有子查询有一种聪明的方法:

select count(*)
from table t
where type = 7
group by id
order by count(*) desc
limit 1;