DevPath · Aprenda a programar ESPTEN

Agregações: GROUP BY e HAVING

Funções agregadas

De muitas linhas a um único valor

Até agora cada consulta retornava uma linha por registro. As funções agregadas fazem o contrário: pegam um conjunto de linhas e o resumem em um único valor.

Função O que calcula
COUNT(*) número de linhas
COUNT(col) número de valores não nulos de col
SUM(col) soma dos valores
AVG(col) média dos valores
MIN(col) valor mínimo
MAX(col) valor máximo

Por exemplo, sobre a tabela produtos:

SELECT COUNT(*) FROM produtos;        -- quantos produtos existem?
SELECT AVG(preco) FROM produtos;      -- preço médio de todos
SELECT MIN(preco), MAX(preco) FROM produtos;

Sem GROUP BY, a função agregada atua sobre todas as linhas da tabela (ou as que sobreviverem ao WHERE) e produz uma única linha de resultado.

Aliases com AS

Uma coluna agregada se chamaria literalmente AVG(preco). Para dar a ela um nome legível, usa-se AS:

SELECT AVG(preco) AS preco_medio, COUNT(*) AS total
FROM produtos;

COUNT(*) conta linhas (incluindo as que tiverem nulos); COUNT(col) conta apenas as linhas em que col não é NULL. Essa diferença importa quando há dados incompletos.

Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
Agrupar com GROUP BY →