558 Shares 7034 views

TENDO SQL: descrição, sintaxe, exemplos

O SQL é o idioma padrão para trabalhar com bancos de dados relacionais. Ele tem em seu arsenal de muitas ferramentas poderosas para manipular dados armazenados sob a forma de tabelas.

Indubitavelmente, a capacidade de agrupar dados quando é amostrada por um determinado recurso é uma dessas ferramentas. A instrução SQL HAVING , juntamente com a cláusula WHERE, permite que você defina as condições de amostragem para os dados já agrupados de alguma forma.

HAVING parâmetro SQL: descrição

Em primeiro lugar, vale a pena notar que este parâmetro é opcional e é usado exclusivamente em conjunto com o parâmetro GROUP BY. Como você se lembra, GROUP BY é usado quando SELECT usa funções agregadas e os resultados de seus cálculos devem ser obtidos para determinados grupos. Se WHERE lhe permitir definir as condições para uma seleção antes que os dados sejam agrupados, então HAVING contém as condições relativas aos dados já nos próprios grupos. Para uma melhor compreensão, vamos dar uma olhada no exemplo com o diagrama mostrado na figura abaixo.

Este é um ótimo exemplo, dando uma descrição HAVING SQL. Uma tabela é fornecida com uma lista de nomes de produtos, empresas que os produzem e outros campos. Na consulta no canto superior direito, estamos tentando obter informações sobre quantos nomes de produtos cada empresa produz, enquanto queremos produzir apenas as empresas que produzem mais de 2 títulos. O parâmetro GROUP BY formou três grupos correspondentes aos nomes das empresas, para cada um dos quais o número de produtos (linhas) foi calculado. Mas o parâmetro HAVING por sua condição cortou um grupo da amostra resultante, porque não satisfazia a condição. Como resultado, obtemos dois grupos correspondentes a empresas com o número de produtos 5 e 3.

Pode surgir uma pergunta sobre por que usar HAVING se houver um WHERE no SQL. Se usássemos WHERE, verificaria o número total de linhas na tabela, não em grupos, e a condição não teria sentido neste caso. No entanto, muitas vezes eles coexistem perfeitamente em um único pedido.

No exemplo acima, podemos ver como os dados foram selecionados pelos nomes dos empregados especificados no parâmetro WHERE e, em seguida, o resultado agrupado em GROUP BY passa um cheque adicional sobre a quantidade de salário para cada funcionário.

Parâmetro SQL HAVING: exemplos, sintaxe

Vamos considerar algumas peculiaridades de HAVING sintaxe SQL. A descrição desse parâmetro é bastante simples. Primeiro, como já foi observado, ele é usado exclusivamente em conjunto com o parâmetro GROUP BY e é especificado imediatamente após ele e antes do ORDER BY, se houver um na consulta. É compreensível, uma vez que HAVING define as condições para os dados já agrupados. Em segundo lugar, na condição deste parâmetro, você só pode usar as funções agregadas e os campos especificados no parâmetro GROUP BY. Todas as condições neste parâmetro são especificadas exatamente da mesma maneira que no caso de WHERE.

Conclusão

Como você pode ver, não há nada complicado neste operador. Semanticamente, ele é usado da mesma forma que WHERE. É importante entender que WHERE é usado em relação a todos os dados selecionáveis, e HAVING é apenas relativo aos grupos definidos no parâmetro GROUP BY. Apresentamos uma descrição exaustiva para HAVING SQL, que é suficiente para trabalhar com confiança.