As relações abaixo compõem uma base de dados em que atributo...
Autor (CPFAutor, Nome, DataNascimento)
Obra (TituloObra, DataConclusao, CPFAutor, CodigoAssunto)
Editora (CNPJEditora, Nome, Local)
Publicacao (TituloObra, CNPJEditora, DataLancamento )
Assunto (CodigoAssunto, Descricao)
Que comando SQL apresenta como resultado a quantidade de publicações do assunto ‘Policial’ por editora?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B
Tema central: A questão exige que você saiba realizar consultas SQL relacionando várias tabelas com joins e condições de filtro, além de agrupar e contar resultados. São competências essenciais para concursos na área de bancos de dados e estão de acordo com o padrão COBRAK e livros como "Fundamentos de Sistemas de Banco de Dados" (Elmasri & Navathe).
Resumo teórico: Para contar publicações de um determinado assunto por editora, é preciso:
- Relacionar as tabelas Publicacao, Obra e Assunto pelos campos correspondentes (chaves estrangeiras).
- Filtrar o Assunto desejado (‘Policial’).
- Agrupar pelo identificador da editora (CNPJEditora).
- Utilizar COUNT para obter a quantidade de publicações.
Justificativa da alternativa correta (B):
A alternativa B faz exatamente isso. Ela:
- Relaciona as tabelas exigidas usando WHERE (forma ainda aceita e frequente em provas).
- Filtra o resultado para assunto ‘Policial’.
- Utiliza GROUP BY para separar por editora.
- Utiliza COUNT(P.TituloObra) para contabilizar as obras de cada editora sobre o assunto.
Esta escrita está correta e apresenta a resposta esperada pela banca.
Análise das alternativas incorretas:
A – Não utiliza GROUP BY, então não agrupa corretamente os resultados por editora.
C – Não faz os joins necessários entre as tabelas; além disso, HAVING é usado sem GROUP BY e sem filtro adequado, o que pode gerar resultados errados ou erros de execução.
D – Usa SUM(P.TituloObra), porém TituloObra não é campo numérico, então não faz sentido somar; o correto é COUNT.
E – Usa LEFT OUTER JOIN sem filtrar o assunto, agrupando todas as editoras, inclusive aquelas que não possuem obras do assunto ‘Policial’.
Estratégias de interpretação:
- Busque sempre os relacionamentos necessários (joins) para cruzar informações.
- Atente para o uso correto de funções de agregação e GROUP BY.
- Marque alternativas que filtram corretamente a condição pedida (aqui, assunto ‘Policial’).
- Desconfie de uso indevido de funções como SUM em campos não numéricos.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo