Em SQL (Structured Query Language), as funções de ag...

Próximas questões
Com base no mesmo assunto
Q492505 Banco de Dados
Em SQL (Structured Query Language), as funções de agregação são muito úteis para obtenção de informação resumida sobre um resultado de um comando SELECT e também no tratamento de informações de forma agrupada (geralmente em grupos menores). No agrupamento de informações, resultados de consultas SQL, algumas cláusulas devem ser utilizadas quando se pretende restringir o conjunto de registros a ser utilizado. Nesse sentido, analise a afirmativa a seguir.
“Utiliza-se a cláusula ________________ sempre que se pretende restringir os registros a serem considerados na seleção. A cláusula ________________ serve para restringir os grupos que foram formados depois de aplicada a restrição da cláusula ________________.”
Assinale a alternativa que completa correta e sequencialmente a afirmativa anterior.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A - WHERE / HAVING / WHERE

O tema desta questão envolve o entendimento das cláusulas WHERE e HAVING utilizadas em SQL para filtrar resultados em uma consulta. O conhecimento sobre como e quando usar essas cláusulas é essencial para quem trabalha com Banco de Dados e deseja realizar consultas que retornem informações específicas baseadas em condições.

A cláusula WHERE é utilizada para filtrar registros antes que qualquer agrupamento ocorra. Ou seja, quando você executa uma consulta com um comando SELECT, é a cláusula WHERE que define quais linhas da tabela serão consideradas para operações futuras, como agrupamentos e funções de agregação.

Por outro lado, a cláusula HAVING é usada para filtrar grupos de registros que já foram agrupados pela cláusula GROUP BY. Depois que os dados são agrupados, você pode querer aplicar uma condição adicional para determinar quais grupos devem ser incluídos no resultado final da consulta.

No contexto da pergunta, a primeira lacuna é preenchida com WHERE, indicando a restrição inicial dos registros a serem considerados na seleção. A segunda lacuna é preenchida com HAVING, que é usada para restringir os grupos após a formação resultante da cláusula WHERE. Por fim, a terceira lacuna é novamente preenchida com WHERE, referindo-se ao primeiro filtro aplicado na seleção dos registros.

Portanto, a alternativa (A) é a correta porque descreve com precisão o uso das cláusulas WHERE para filtrar registros antes do agrupamento e HAVING para filtrar grupos após um agrupamento realizado pela cláusula GROUP BY (que não é mencionada diretamente no espaço em branco, mas é subentendida como parte do processo).

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

As cláusulas de restrição de registros são: WHERE e HAVING.


E a cláusula HAVING é aplicada depois do WHERE.


Logo letra A.

  • A cláusula WHERE é aplicada primeiro às linhas individuais nas tabelas ou objetos com valor de tabela no painel Diagrama. Apenas as linhas que atendem os critérios na cláusula WHERE são agrupadas.

  • A cláusula HAVING é aplicada às linhas no conjunto de resultados. Somente os grupos que atendem os critérios de HAVING são exibidos na saída da consulta. Você pode aplicar apenas uma cláusula HAVING em colunas que também são exibidas na cláusula GROUP BY ou em uma função de agregação.

Fonte: https://msdn.microsoft.com/pt-br/library/ms177458%28v=SQL.120%29.aspx

Via de regra, a ordem é:

[ WHERE condição ]

[ GROUP BY expressão [, ...] ]

[ HAVING condição [, ...] ]

Sendo que GROUP BY, em tese, não restringe a seleção de registros. Esse comando tem por finalidade dividir "a saída" (...) "em grupos de linhas que correspondem a um ou mais valores", não restringindo (ou eliminando) registros. Simplesmente, agrupando.

Fonte: http://pgdocptbr.sourceforge.net/pg80/sql-select.html

Ordem de Avaliação:

SELECT

     FROM  (tabela)

    WHERE (condição)

    GROUP BY (agrupar)

     HAVING (agregar)

     ORDER BY (ordenar)

 

Lembrando: A Cláusula WHERE faz restrições sobre os atributos. Já a cláusula HAVING faz restrições sobre resultados agregados.

 

Fé na Missão !!!!

Att,

 

 “Utiliza-se  a  cláusula WHERE sempre  que  se  pretende  restringir  os  registros  a  serem  considerados  na  seleção.  A  cláusula  HAVING serve  para  restringir  os  grupos  que  foram  formados  depois  de  aplicada  a  restrição da cláusula GROUP BY .”  
 

OBS:

           A cláusula HAVING não é sempre usada depois do GROUP BY?

          creio que esta errada a sequência do item A. Acima está a sequência correta.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo