Funções do Grupo SQL

Índice

As funções de grupo são integradas às funções SQL que operam em grupos de linhas e retornam um valor para todo o grupo. Essas funções são: GROUP, HAVING, COUNT, MAX, MIN, AVG, SUM, DISTINCT.
A cláusula GRUPO POR usado em conjunto com funções de grupo para recuperar dados agrupados de acordo com uma ou mais colunas.
Os subtotais podem ser obtidos com a cláusula GROUP BY. Uma consulta com uma cláusula GROUP BY é chamada de consulta agrupada porque agrupa os dados na tabela de origem e produz uma única linha de resumo para cada grupo formado. As colunas indicadas em GROUP BY são chamadas de colunas de agrupamento.
Suponha uma tabela de vendas com os seguintes campos
Id | produto | preço | quantidade | vendedor de id
Exemplo:
SELECIONE SUM (preço) como vendas totais DE vendas
Obtém a soma das vendas totais realizadas, o valor é atribuído às vendas totais
SELECT SUM (vendas) FROM vendas GROUP BY id funcionário
Um grupo é formado para cada funcionário e a soma é calculada sobre as linhas de cada grupo. O exemplo anterior obtém uma lista com a soma das vendas de cada um dos funcionários.
A consulta seria melhor incluir na lista de seleção o nome do funcionário para saber a qual funcionário corresponde a soma das vendas:
 SELECIONE funcionários.nome, SOMA (preço) AS vendaspor funcionário FROM vendas, funcionários Onde vendas.idempregado = funcionários.idempregado GROUP BY ideempregado

Apenas:
valores constantes
funções de coluna
agrupar colunas (colunas que aparecem na cláusula GROUP BY)
ou qualquer expressão baseada no acima.
Exemplo: Queremos se tivéssemos filiais e gostaríamos de obter a soma das vendas dos funcionários agrupados por região e cidade:
 SELECIONE SUM (preço) como vendas por filial FROM vendas GROUP BY região, cidade

É agrupado primeiro por região e, dentro de cada região, por cidade.
Todas as linhas com valor nulo no campo de agrupamento tornam-se um único grupo. Ou seja, ele trata o valor nulo como qualquer valor para fins de agrupamento.
A cláusula HAVING
A cláusula HAVING nos permite selecionar linhas da tabela resultante de uma consulta de agrupamento
Apenas o seguinte pode aparecer na condição de seleção:
valores constantes
funções de coluna
agrupar colunas (colunas que aparecem na cláusula GROUP BY)
ou qualquer expressão baseada no acima.
Exemplo: Queremos saber quais funcionários venderam mais de 10.000 euros
 SELECIONE * DE vendas GRUPO POR idempregado HAVING AVG (preço)> 10.000

Para obter o que se pede, devemos calcular as vendas médias dos funcionários. Temos que agrupar os funcionários por id e calcular a média de cada uma das vendas por funcionário, finalmente temos que selecionar no resultado as linhas que têm uma média superior de 10.000.
Como uma consulta de grupo é executada internamente?
Primeiro, a tabela da fonte de dados é formada de acordo com a cláusula FROM,
as linhas são selecionadas da fonte de dados de acordo com a cláusula WHERE,
grupos de linhas são formados de acordo com a cláusula GROUP BY,
Para cada grupo, uma linha é obtida na tabela resultante com os valores que aparecem nas cláusulas GROUP BY, HAVING e na lista de seleção,
as linhas são selecionadas da tabela resultante de acordo com a cláusula HAVING,
colunas que não aparecem na lista de seleção são removidas da tabela resultante,
as linhas da tabela resultante são ordenadas de acordo com a cláusula ***** BY
Uma consulta torna-se uma consulta de grupo assim que GROUP BY, HAVING ou uma função de coluna aparecer.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave