Em SQL (Structured Query Language), as funções de ag...
“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.
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