A solução correta para que uma consulta sql retorne às agênc...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: Alternativa A
Para resolver questões como essa, é necessário compreender o funcionamento das cláusulas SELECT, FROM, GROUP BY e HAVING no SQL. O uso correto dessas cláusulas permite realizar consultas que agregam dados e filtram esses resultados de acordo com condições específicas.
A Alternativa A está correta pois segue a sintaxe correta para realizar uma consulta que precisa de uma agregação de dados seguida de um filtro condicional pós-agregação. A cláusula GROUP BY é utilizada para agrupar os registros pelo nome da agência, enquanto a função AVG(saldo) calcula a média dos saldos das contas para cada uma dessas agências. A cláusula HAVING é utilizada para aplicar o filtro somente nas agências cuja média dos saldos é maior que 1200, cumprindo assim o requisito da consulta.
Esse comportamento é adequado e necessário pois a condição de filtragem se aplica após a agregação dos dados, e não antes, o que inviabilizaria o uso da cláusula WHERE, a qual é aplicada antes do agrupamento dos dados. Como queremos filtrar com base em um resultado agregado, o HAVING é a escolha correta.
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
A Função having tem por objetivo especifica um critério de pesquisa para um grupo ou um agregado. A cláusula HAVING geralmente é usada com a cláusula GROUP BY.
Portanto, a opção que demonstra de maneira correta é a opção A
Fonte: https://technet.microsoft.com/pt-br/library/ms173260%28v=sql.110%29.aspx
A clausula WHERE e os demais termos, pra mim, estao aplicadas corretamente
Achei a resposta do porquê da alternativa C estar errada em: http://www.postgresql.org/docs/9.1/static/sql-expressions.html#SYNTAX-AGGREGATES :
"An aggregate expression can only appear in the result list or HAVING clause of a SELECT command. It is forbidden in other clauses, such as WHERE, because those clauses are logically evaluated before the results of aggregates are formed."
Obrigaado pela ajuda, amigo Paulo.
Estudando mais sobre BD's, percebi que eh meio que uma regra(ou obrigaacao) o GROUP BY ser acompanhado do HAVING.
Agradeco a ajuda!
Na verdade pode ter group by sem ter having e o contrário também.
O Having é pra quando você utiliza uma cláusula no select que é agregada, tipo(SUM,AVG, etc) eles não podem ser filtrados no where, somente com o Having.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo