Como usar a cláusula HAVING do MySQL em que a soma é maior que o limite

Como Usar A Clausula Having Do Mysql Em Que A Soma E Maior Que O Limite



Ao trabalhar com banco de dados MySQL, muitas vezes você terá instâncias em que deseja filtrar os valores. Embora você possa usar a cláusula WHERE, ela nem sempre funciona para todas as instâncias. A cláusula HAVING é usada quando você deseja executar uma consulta de filtro usando uma função de agregação e aplicar os agrupamentos.

A cláusula HAVING depende da cláusula GROUP BY em seu filtro e executa a consulta com base na condição fornecida. Ele restringe o filtro com base na condição e só retorna os grupos selecionados se atenderem à condição. Temos exemplos de uso da cláusula HAVING do MySQL em que a soma excede o limite. Dessa forma, você vai dominar como usá-lo no final do post de hoje.







Como usar a cláusula HAVING do MySQL em que a soma é maior que o limite

Você aplica a cláusula HAVING do MySQL com a cláusula GROUP BY. Sua sintaxe é a seguinte:



SELECT expressão1, .. expressão_n, função_agregada (expressão) FROM nome_da_tabela GROUP BY expressão HAVING ;

Você pode usar as diferentes funções de agregação, incluindo SUM(), COUNT(), MIN(), MAX() e AVG(). Observe que qualquer expressão que não seja usada com a função de agregação deve ser mencionada com a cláusula GROUP BY.



Quanto à condição, ela é aplicada aos resultados agregados onde você especifica o limite que deseja verificar com a condição. Por exemplo, você pode aplicar a função SUM() e verificar se a expressão atinge um limite de 10. Vamos entender mais sobre isso nos exemplos fornecidos.





Para entender como funciona a cláusula HAVING, vamos criar um banco de dados de amostra com o qual trabalharemos. Nomeamos nosso banco de dados como “registro”.



Vamos também criar uma tabela chamada “workers” para conter nossas diferentes colunas e tipos de dados. Aqui, trabalhamos com os dados dos trabalhadores, como nome, horário, data de trabalho, etc.

Ao verificar a descrição da nossa tabela, podemos confirmar que todas as colunas foram criadas com sucesso.

Inserimos os valores em nossa tabela. Temos trabalhadores diferentes que trabalham em horários e dias diferentes. Usando esses dados, podemos aplicar a cláusula HAVING onde a soma excede o limite.

Para o nosso primeiro exemplo, vamos considerar um caso em que queremos encontrar os trabalhadores que trabalharam mais horas. Para a cláusula HAVING, inclua a função agregada sum para horas. Na cláusula GROUP BY, agrupamos as linhas usando a linha de nome para ajudar a classificar os trabalhadores com um total de horas maior que o limite.

Se tivermos nosso limite para o total de horas como 7, executamos nosso comando da seguinte maneira:

SELECT nome, SUM(horas) AS total_horas_por_pessoa FROM trabalhadores GROUP BY nome HAVING soma(horas) > 7;

Ao executar o comando, obtemos uma saída que contém duas linhas, pois apenas dois trabalhadores excederam o limite especificado na cláusula HAVING.

Suponha que queremos classificar os departamentos para ver aqueles com funcionários que trabalham em horas superiores a 7 horas. Selecionamos o departamento, usamos a função de agregação SUM com as horas e agrupamos as linhas usando a expressão de departamento.

Nosso comando é o seguinte:

SELECT departamento, SUM(horas) AS total_horas_por_departamento FROM trabalhadores GROUP BY departamento HAVING soma(horas) > 7;

A partir dos resultados, podemos verificar que conseguimos filtrar as linhas para deixar apenas aquelas com uma soma de suas horas maior que o nosso limite.

Da mesma forma, se quisermos filtrar a data de trabalho com o maior número de trabalhadores trabalhando para exceder um limite de 10 horas, selecionamos a expressão workdate. Em seguida, usamos a função SUM com as horas e agrupamos as linhas usando a data de trabalho.

O comando é o seguinte:

SELECT data de trabalho, SUM(horas) AS mais_horas_trabalhadas FROM trabalhadores GROUP BY data de trabalho HAVING soma(horas) > 10;

Depois de executar o comando, os resultados mostram que apenas uma data de trabalho tem sua soma de horas totais que excedem o limite:

Conclusão

A cláusula HAVING do MySQL é usada quando você deseja executar uma consulta de filtro usando uma função agregada. É combinado com a cláusula GROUP BY para executar uma consulta mais específica. Este post detalhou tudo sobre a cláusula HAVING do MySQL onde a soma é maior que o limite. Com os exemplos fornecidos, você agora entende como trabalhar com a cláusula HAVING do MySQL.