6.1 Lista de funções agregadas
Ao usar o agrupamento de linhas em SQL com o operador GROUP BY
, você pode usar SELECT
funções na instrução que operam nos dados agrupados. Essas funções também são chamadas de funções agregadas.
Aqui está uma lista dos mais populares:
# | Função | Descrição |
---|---|---|
1 | CONTAR() | Retorna o número de valores em um grupo |
2 | SOMA() | Retorna a soma dos valores em um grupo |
3 | MAX() | Retorna o valor máximo de um grupo |
4 | MIN() | Retorna o valor mínimo de um grupo |
5 | AVG() | Retorna a média de um grupo |
6 | BIT_AND() | Executa um AND bit a bit sobre todos os valores de grupo |
7 | BIT_OR() | Executa um OU bit a bit sobre todos os valores de grupo |
8 | BIT_XOR() | Executa um XOR bit a bit sobre todos os valores do grupo |
9 | GROUP_CONCAT() | Concatena todos os valores do grupo em uma string |
Agora vamos ver alguns exemplos com nossas funções de agregação.
6.2 Analisando os salários dos funcionários
Vamos calcular algumas estatísticas sobre nossos funcionários da tabela de funcionários .
Pergunta um: quantos funcionários temos?
Se quisermos descobrir o número de todos os registros na tabela, podemos usar a função agregada para isso COUNT
. A solicitação ficará assim:
SELECT COUNT(*) FROM employee
E o MySQL retornará como resposta o número 6. Temos 6 funcionários no departamento, incluindo um gato. Tudo bem.
Pergunta dois: quanto pagamos por mês a todos os funcionários?
Para responder a essa pergunta, precisamos somar os salários de todos os funcionários. Para fazer isso, usamos a função agregadaSUM()
A solicitação ficará assim:
SELECT SUM(salary) FROM employee
Observe que desta vez somos obrigados a especificar os valores de qual coluna estamos resumindo. Especificamos uma coluna de salário . Não podemos simplesmente somar todos os campos em uma tabela.
E o MySQL retornará como resposta o número 461000. Temos 6 funcionários no departamento e o salário é de 461 mil. Demais.
E, finalmente, a terceira pergunta: quais são os nossos salários máximos e mínimos no departamento? Bem, vamos calcular o salário médio. Para fazer isso, precisamos das funções MIN
, MAX
e AVG
.
A consulta será um pouco mais complexa desta vez e ficará assim:
SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee
O resultado desta consulta será:
MIN(salário) | MÉDIA(salário) | MAX(salário) |
---|---|---|
1000 | 76833.3333 | 200000 |
O salário mínimo em nosso departamento é de US$ 1.000 – muito bom. O salário máximo é de 200 mil, mas esse é o diretor.
Mas o salário médio é muito alto, você precisa otimizar os custos de alguma forma. Vamos contratar outro gato e pronto :)
GO TO FULL VERSION