Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Por que a resposta A é incorreta?

Olá,

neste exercício é solicitado "a média de saldo e o número total de contas ativas no banco".

A resposta correta é a D:

SELECT COUNT(id_cliente) AS Total_Contas, AVG(saldo) AS Media_Saldo
FROM contas
WHERE status_conta = 'ativa';

Mas acredito que o mesmo resultado seria obtido pela consulta da resposta A:

SELECT COUNT(saldo) AS Total_Contas, AVG(saldo) AS Media_Saldo
FROM contas
WHERE status_conta = 'ativa';

Independente da coluna adicionada no COUNT(), o retorno não seria o mesmo? Um COUNT(*), por exemplo, que é o utilizado nos vídeos do curso até aqui, também traria o mesmo resultado. Por que a A não é aceita?

Obrigado.

3 respostas
solução!

Olá, Matheus! Tudo bem?

Boa pergunta! Realmente, a consulta da alternativa A também pode retornar o resultado esperado. A diferença entre usar COUNT(saldo) e COUNT(id_cliente) está na forma como a contagem é realizada.

Ao usar COUNT(saldo), será feita uma contagem da quantidade de valores não nulos na coluna saldo. Se houver algum saldo nulo, ele não será contabilizado. Ao usar COUNT(id_cliente), será feita uma contagem da quantidade de valores não nulos na coluna id_cliente. Como o id_cliente provavelmente é a chave primária da tabela, ele nunca será nulo, garantindo que todas as contas ativas sejam contadas.

Sendo assim, no contexto do exercício, a alternativa D é considerada a mais correta porque utiliza COUNT(id_cliente), que é uma prática mais segura e garante que todas as contas ativas sejam contabilizadas, mesmo que o saldo de alguma conta seja nulo.

Espero ter ajudado!

Abraço! :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Oi Maiully,

Agradeço sua resposta, ela foi esclarecedora!

Infelizmente, isso não foi abordado no curso. Até onde eu lembre, as consultas foram todas em cima de usar COUNT(*), então eu achava que seria retornado o mesmo, independente da coluna passada. Não sabia dessa dos valores nulos, que é algo bem importante.

Obrigado!

Fico muito feliz, Matheus!

A sua pergunta foi muito interessante e foi muito legal você compartilhar com a comunidade! Obrigada!!

Abraço! :)