SELECT
COUNT(CASE WHEN CODIGO_DO_PRODUTO = '1101035' AND QUANTIDADE = 99 THEN 1 END) AS QTD_PRODUTO
FROM
ITENS_NOTAS_FISCAIS;
SELECT
COUNT(CASE WHEN CODIGO_DO_PRODUTO = '1101035' AND QUANTIDADE = 99 THEN 1 END) AS QTD_PRODUTO
FROM
ITENS_NOTAS_FISCAIS;
Oi, Leonardo, tudo bem?
Obrigado por compartilhar seu código com os demais alunos e alunas, tenho certeza que vai ajudar todas as pessoas que estão estudando este mesmo assunto e realizando esta ativdiade.
A única diferença do seu código para o código apresentado pelo instrutor é o uso do CASE
que conta o número de registros onde a condição (CODIGO_DO_PRODUTO = '1101035' AND QUANTIDADE = 99)
é verdadeira. No entanto, essa função retorna NULL
para os registros que não atendem à condição. A contagem final é então do número de registros em que a condição é verdadeira, excluindo aqueles em que a condição é falsa ou NULL
. Já no código do instrutor:
SELECT COUNT(*) FROM ITENS_NOTAS_FISCAIS WHERE CODIGO_DO_PRODUTO = '1101035' AND QUANTIDADE = 99;
A função COUNT
está sendo usada com COUNT(*)
, que conta o número total de registros onde a condição (CODIGO_DO_PRODUTO = '1101035' AND QUANTIDADE = 99)
é verdadeira. Não há exclusão de registros com valores NULL
neste caso.
Contudo, ambas estão certas e levam a um mesmo resultado. Portanto, parabéns por explorar outras alternativas para resolver esta atividade e caso tenha dúvidas em seus estudos, conte com a comunidade do fórum para te ajudar!
Abraços!