Filtrar informações usando SQL sem usar Select dentro do Where

04/03/2022

0

Bom dia a todos!

Estou iniciando meus aprendizados em SQL, estou usando a base de dados de exemplo do SQL Server (Sakila) para fazer alguns teste, queria fazer uma operação com duas tabelas a payment (pagamentos efetuados pelos clientes) e a customer (lista de clientes cadastrados).

Até o momento agrupei os dados pelo cliente e agreguei uma coluna ''''''''Maior Valor'''''''' que traz o maior valor pago entre os clientes.
Select
    pay.customer_id,
    cli.first_name,
    cli.last_name,
    Max(pay.amount) as ''''''''Maior valor''''''''

from customer cli
    JOIN  payment pay ON (cli.customer_id = pay.customer_id)
group by cli.customer_id;


Até aqui rodou tudo bem, estou tentando pensar em uma forma de classificar esses clientes pelo maior valor, por exemplo quem teve uma compra igual ou a cima de 10.99 poderia ter um status de ''''''''VIP'''''''' e quem teve a baixo poderia receber como ''''''''NO VIP'''''''', até o momento consigo trazer cada um por vez, usando:

    Where (Select max(pay.amount) from payment) >= 10.99 -- Filtra os que são maiores


Porém ao usar esse select o código fica umas 50x mais demorado, além de não conseguir colocar todos os dados colocando o status de 'VIP' e 'NO VIP'.

Alguém poderia me dar uma sugestão, por favor?

Desde já agradeço!
Lucas

Lucas

Responder

Post mais votado

04/03/2022

Select
    pay.customer_id,
    cli.first_name,
    cli.last_name,
    Max(pay.amount) as 'Maior valor',
    (case when Max(pay.amount) >= 10.99 then 'VIP' else 'NO VIP' end) status
from
    customer cli
JOIN
    payment pay
    ON pay.customer_id = cli.customer_id
group by
    pay.customer_id,
    cli.first_name,
    cli.last_name

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

05/03/2022

Lucas

Boa tarde Emerson, tesei e deu certinho! Muito obrigado pela ajuda!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar