Dicas sobre desenvolvimento de software, gestão e tributações

Rede Social

16 de junho de 2020

Sql: Having como funciona.


Having é a condição que se aplica ao resultado de um group by. Ela pode ser usada em conjunto com o where e tem uma função semelhante a ele, mas servindo apenas para resultados de um group. É muito útil, mas algumas vezes esquecida pelos programadores.

Vamos a um exemplo:

SELECT X, SUM(Y) 
FROM TAB 
GROUP BY X 
HAVING SUM(Y) >= 10

Neste caso estou selecionando a coluna X e realizando uma soma da coluna Y, essa soma é realizada agrupando os X que são iguais, mas eu só quero visualizar os X que tem a soma de Y maior ou igual a 10.
Mas vamos para um exemplo mais real.

SELECT CPF, COUNT(*) 
FROM VENDAS
WHERE YEAR(DATA_VENDA) = 2020 
GROUP BY CPF 
HAVING COUNT(*) > 100

No caso acima quero saber todos os CPFs de clientes que realizaram compras na minha loja no ano de 2020, para isso eu seleciono o CPF e uso o count para contar quantas vendas foram para cada cliente, por isso agrupo por CPF, mas imagine que quero ver apenas os clientes mais fiéis, que fizeram mais de 100 compras, tendo o count e o group by fica simples, é só adicionar o having maior que 100 que no caso uma tradução possível seria tendo, quero uma contagem das vendas agrupadas por cliente, mas mostrando apenas clientes tendo mais que 100 compras.

Tradução literal do comando:
Selecione o CFP e contagem de linhas
da tabela de vendas
quando a data da venda estiver no ano de 2020
agrupando por CPF
tendo a contagem de linhas valor superior a 100.



0 comentários:

Postar um comentário