如何获取此查询中返回的前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
答案 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