-
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
-
Eu ate acertei, mas queria entender porque a letra C esta incorreta
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.
-
O motivo da (C) estar errada:
"The HAVING clause was added to SQL because the WHERE keyword could not be used with aggregate functions".