SóProvas


ID
321127
Banca
CESPE / CEBRASPE
Órgão
Correios
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de banco de dados, julgue os itens a seguir.

A cláusula HAVING será aplicada a todo o resultado como um único grupo de dados quando não houver uma cláusula GROUP BY.

Alternativas
Comentários
  • A query com a cláusula HAVING deverá ser acompanhada do GROUP BY. Caso esta seja omitida, então todas as tuplas não excluídas pelo claúsula WHERE serão retornadas como um grupo individual.
  • O HAVING é usado em conjunto com o GROUP BY, aplicará também no resultado final. Na minha opnião caberia recurso..

  • Concordo. Pelo que sei o having deve ser aplicado ao grupo.
  • A banca mudou o gabarito para ERRADO e mandou a seguinte justificativa:

    "A cláusula HAVING restringe os resultados do GROUP BY na ExpressãoSeleção. A cláusula HAVING é aplicada a cada grupo da tabela agrupada, 
    de forma parecida como a cláusula WHERE é aplicada à lista de seleção. Se não houver uma cláusula GROUP BY, a cláusula HAVING será aplicada
    a todo o resultado como um único grupo. A cláusula SELECT não pode fazer referência direta a qualquer coluna que não possua uma cláusula 
    GROUP BY. Entretanto, pode fazer referência a constantes, agregações, e registros especiais. Desse modo, opta-se pela alteração do gabarito do 
    item."
  • Olá, pessoal!

    O gabarito foi atualizado para "E", conforme edital publicado pela banca e postado no site.

    Justificativa da banca:  A cláusula HAVING restringe os resultados do GROUP BY na ExpressãoSeleção. A cláusula HAVING é aplicada a cada grupo da tabela agrupada, de forma parecida como a cláusula WHERE é aplicada à lista de seleção. Se não houver uma cláusula GROUP BY, a cláusula HAVING será aplicada a todo o resultado como um único grupo. A cláusula SELECT não pode fazer referência direta a qualquer coluna que não possua uma cláusula GROUP BY. Entretanto, pode fazer referência a constantes, agregações, e registros especiais. Desse modo, opta-se pela alteração do gabarito do item.

    Bons estudos!
  • Uéé, não entendi.

    Segundo a justificativa da banca, a questão está certa.
    Veja um techo da justificativa:
    "Se não houver uma cláusula GROUP BY, a cláusula HAVING será aplicada a todo o resultado como um único grupo."

    A questão diz exatamente isso:
    "A cláusula HAVING será aplicada a todo o resultado como um único grupo de dados quando não houver uma cláusula GROUP BY."


    Assim, a questao deveria ser considerada "Correta".
    Ou estou enganado?



  • Também não entendi. A justificativa da banca corrobora com o gabarito inicial (CERTO).
  • No Oracle não é possivel utilizar o comando Having sem a cláusula Group By.

    O seguinte erro é apresentado:
    ORA-00979: não é uma expressão GROUP BY, SQL State: 42000, Error Code: 979

    Por este motivo marquei a questão como errada!!
  • Questão tiro no pé: 

    A banca quis fazer uma pegadinha e se deu mal. 
    A cláusula GROUP BY, quando omitida, trata a relação inteira como um único grupo. 
    O problema é que esqueceram que o HAVING não funciona sem utilizar o GROUP BY.
  • A justificativa da banca é incompreensível. Ela entra em contradição consigo mesma. É possível usar a clausula HAVING sem o GROUP BY, como a banca diz, e a cláusula é aplicada a todo o resultado, como a banca diz. Então por que mudar o gabarito ??

    Para verem a cláusula having funcionando sem o group by, consultem http://sqlfiddle.com/#!6/f353c/7 e exercitem.

  • Questão 72 da prova: http://www.cespe.unb.br/concursos/CORREIOS2011/arquivos/ECT11_003_11.pdf

    Gabarito definitivo: http://www.cespe.unb.br/concursos/CORREIOS2011/arquivos/Gab_Definitivo_ECT11_003_11.PDF
    Justificativa de alteração: 
    http://www.cespe.unb.br/concursos/CORREIOS2011/arquivos/CORREIOS_NS_NM_JUSTIFICATIVAS_DE_ALTERA____ES_DE_GABARITO_FINAL.PDF