如何使用最大条件获得前两行?

时间:2016-12-27 19:42:06

标签: mysql mysql-workbench

如何获取此查询中返回的前2行?

select nomeClube 'Clube', count(Contrato_id_clube) 'NContratos'
from clube, contrato
where (id_clube= Contrato_id_clube)
group by nomeClube
order by count(Contrato_id_clube) desc 

query results

2 个答案:

答案 0 :(得分:0)

我相信您希望所有组具有最大数量,并且您的示例恰好有两个这样的行。

select nomeClube 'Clube', count(Contrato_id_clube) 'NContratos'
from clube inner join contrato on id_clube = Contrato_id_clube
group by nomeClube
having count(Contrato_id_club) = (
    select max(c)
    from (
        select count(Contrato_id_clube) c
        from clube inner join contrato on id_clube = Contrato_id_clube
        group by nomeClube
    ) t
)

嵌套查询中的内部联接可能没有必要,但由于您没有指定表之间的关系,我在那里复制了整个查询。

答案 1 :(得分:-1)

你应该把它放在内部选择中并获得最佳记录:

select * from (
select nomeClube 'Clube', count(Contrato_id_clube) 'NContratos'
from clube, contrato
where (id_clube= Contrato_id_clube)
group by nomeClube
order by count(Contrato_id_clube) desc )
limit 2