Ir para conteúdo
Fórum Script Brasil
  • 0

Select N linhas em um select com group by


rcstere

Pergunta

Olá,

Tenho a seguinte situação: preciso selecionar os 5 principais clientes em termos de faturamento, por ano, um uma tabela de vendas. Já li algumas sugestões de solução para isso, mas não consegui implementar. Alguém poderia, por favor, me ajudar?

Obrigado.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Poste o que você já tentou.

Parei nesse código. Vi que não adiantar usar LIMIT

SELECT ano,

cliente,

faturamento

FROM

(

SELECT c.cliente cliente,

t.ano ano,

SUM(f.valor_vendido) faturamento

FROM f_vendas f

JOIN cliente c ON (f.id_cliente=c.id)

JOIN dim_tempo t ON (f.id_tempo=t.id)

GROUP BY t.ano,c.cliente

ORDER BY t.ano,SUM(f.valor_vendido) DESC,c.cliente

) t1

Link para o comentário
Compartilhar em outros sites

  • 0

Não tenho os dados para testar mas tenta isso:

select ano, cliente, faturamento
from (
    SELECT 
        c.cliente,
        t.ano,
        SUM(f.valor_vendido) as faturamento,
        rank() over (partition by t.ano order by SUM(f.valor_vendido) desc) as r
    FROM f_vendas f
    JOIN cliente c ON f.id_cliente=c.id
    JOIN dim_tempo t ON f.id_tempo=t.id
    GROUP BY t.ano,c.cliente
) s
where r <= 5
ORDER BY t.ano, r, c.cliente

Se não der certo poste a mensagem de erro. Aliás essa tabela dim_tempo está meio esquisita. Foi você quem modelou?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...