1
resposta

Consulta com filtro está retornando o mesmo número de linhas do que sem filtro

Ao tentar fazer o exercício da aula 3.10, me deparei com a seguinte situação:

Ao realizar esta consulta:

select * from notas_fiscais;

Recebo este retorno: Insira aqui a descrição dessa imagem para ajudar na acessibilidade(1000 linhas)

No entanto, ao usar um filtro, o resultado permanece 1000 linhas, sendo que deveria retornar consideravelmente menos:

select cpf, numero
from notas_fiscais
where cpf = '7771579779';

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Isso ocorre para qualquer cpf utilizado. Também ocorre para diversas outras consultas, como por exemplo:

select imposto, cpf
from notas_fiscais
where cpf = '7771579779';

select imposto, numero
from notas_fiscais
where imposto between 0.0 and 0.11;

Alguma ideia do que pode ser?

1 resposta

Boa noite Guilherme! Tudo bem?

O que acontece é que possivelmente o seu SGBD retornou as 1000 primeira linhas da tabela, ao utilizar a query:

SELECT COUNT(*) AS NUMERO_DE_REGISTROS FROM NOTAS FISCAIS

Temos um retorno de 87877 registros na tabela e não apenas 1000 como você pensou que fosse. Além disso ao executar a query:

SELECT DISTINCT CPF FROM notas_fiscais 

Temos um retorno de 14 CPF's cadastrados, ou seja, temos uma 87877 dividos entre apenas 14 CPF's. Fazendo um consulta para exibir a quantidade de Notas fiscais do CPF de exemplo, temos a seguinte query:

SELECT COUNT(*) AS NUMERO_DE_NOTAS FROM notas_fiscais WHERE CPF = '7771579779';

Isso nos retorna 6179 registros.

No seu caso o seu SGBD retornou apenas as primeira 1000 linhas em todas as consultas que você fez, dando esse susto em você.