Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Uso do LIMIT para mostrar o mais vendido...

O instrutor usou o código abaixo para exibir o curso mais vendido, no meu caso há dois mais vendidos e esse LIMIT só vai mostrar um deles, como eu poderia fazer para mostrar os dois sem me limitar a ficar usando a cláusula LIMIT?

select
    A.nome,
    count(B.aluno_id) as total
from curso as A
inner join aluno_curso as B
on A.id = B.curso_id
group by A.nome
order by total desc
limit 1
2 respostas
solução!

Olá Walace, tudo bem?

Uma outra forma que você pode usar para limitar a quantidade de registros retornados, é através do having, por exemplo, para mim quando o curso chegar a ser vendido 5 vezes ele já deve entrar no "grupo" dos cursos mais vendidos e devido a cláusula having no meu select, apenas cursos que tenha quantidade de vendas igual ou maior a 5 serão retornados na consulta, funcionando como a cláusula LIMIT, porém de uma forma menos limitada.

SELECT    
    A.nome, count(B.aluno_id) AS total
FROM  curso AS A
INNER JOIN aluno_curso AS B 
    ON  A.id = B.curso_id
GROUP BY A.nome
HAVING  COUNT(B.aluno_id) >= 5
ORDER BY total DESC;

Espero ter ajudado e bons estudos!

Entendi, obrigado pelo retorno!!