我想从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中实现这一目标?
答案 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