按mysql中字段中的最大记录数排序

时间:2014-11-19 17:43:37

标签: mysql sql select sql-order-by

我想从MySQL数据库中订购一个表格的内容,如下所示。

name,h1,h2
a,f1,3
a,g3,5
a,h3,4
b,g3,4
c,h5,2
c,j12,6

我想知道名称栏中每个元素的长度,即' a'将是3(因为它有三行与之关联的数据)和获取前2个元素的数据(这里它包括3行用于' s和2用于c& #39;因为它们按降序排列的长度最长。所以所需的输出看起来像下面的

name,h1,h2
a,f1,3
a,g3,5
a,h3,4
c,h5,2
c,j12,6

如何在MySQL中实现这一目标?

1 个答案:

答案 0 :(得分:1)

加入前两个记录的计数应该会给你结果。

select
  t.*
from
  table1 t
  inner join (select 
                name, 
                count(*) as cnt 
              from table1 
              group by name
              order by count(*) desc
              limit 2) as c on t.name = c.name
order by c.cnt desc

这是fiddle