3
respostas

Não entendi o intuito do exercício

Segue código:

SELECT CPF, COUNT(*) FROM notas_fiscais
WHERE YEAR (DATA_VENDA) = 2016
group by CPF
HAVING COUNT(*) > 2000;

O Count está contando o que? O que ele contabiliza?

Não está explicito o que ele contabiliza, seria o número?

Pq utilizamos "*" dentro do COUNT?

Também utilizei isso para tentar achar mais pistas, é um dos CPFs:

SELECT * FROM notas_fiscais WHERE YEAR (data_venda) = 2016
AND 
CPF = 50534475787;

E só encontrei informações de NÚMERO, que acredito que seja o número de compras... no entrando não encontro nenhum número de linhas maior que 2000.

3 respostas

Bom Dia Vitor.

COUNT é uma função agregada no SQL Server que retorna o número de itens em um grupo. COUNT sempre retornará um INT. COUNT usará índices, mas dependendo da consulta pode ter um desempenho melhor com índices não clusterizados do que com índices clusterizados.

Ele conta o numero de linhas o * seria para ele mostrar tudo que contei na tabela.

Sempre que utilizar o * após o select ele trata todos as colunas da tabela.

O count tem diversas maneiras de utilizar.

Segue essa documentação da Microsoft vale apena dar uma lida.

https://docs.microsoft.com/pt-br/sql/t-sql/functions/count-transact-sql?view=sql-server-ver16

Se conseguiu esclarecer a duvida avisa aqui

Boa noite! Obrigado pela resposta.

Mas nesse exercício, o que o Count está contando e qual o motivo? Digo, qual a sua associação?

Pelo que eu entendi ele quer saber os CPF que são maior que o Ano 2000. Porem ele quer uma consulta mais especifica ele quer que alem dos que são acima de 2000 ele quer todos que sejam igual a 2016. Não sei se consegui explicar direito.

Da uma olhada nesse video em 1:29:24 acho que você vai conseguir entender melhor com esse exemplo:

https://www.youtube.com/watch?v=rX2I7OjLqWE&t=288s

Veja se isso te ajuda a esclarecer