Flashcard FC558509
Por que colocar a restrição de data na cláusula ON de um LEFT JOIN e usar HAVING COUNT(id_auditoria) <= 1 para listar empresas com nenhuma ou até uma auditoria em 2025?
Linguagem SQL
CEBRASPE (CESPE) · 2025
Por que colocar a restrição de data na cláusula ON de um LEFT JOIN e usar HAVING COUNT(id_auditoria) <= 1 para listar empresas com nenhuma ou até uma auditoria em 2025?
Mostrar resposta e comentário
Resposta
Porque assim as empresas sem auditorias em 2025 são preservadas pelo LEFT JOIN e o HAVING com COUNT(id_auditoria) trata NULL como 0, selecionando empresas com 0 ou 1 auditoria no ano de 2025.
• LEFT JOIN: ao filtrar a data no ON, mantém todas as empresas mesmo sem auditorias no período, com valores NULL para colunas de auditoria.
• COUNT(id_auditoria): ignora NULL, retornando 0 para nenhuma auditoria e 1 para uma auditoria no período.
• WHERE vs ON: aplicar a restrição de data em WHERE excluiria empresas sem auditorias no período, tornando o resultado incorreto.
Veja como foi cobrado:
https://flashcardsconcursos.com.br/portal/flashcard/546285
Conteúdo do catálogo FC Concursos · Atualizado em