Menu
Coddy logo textTech

Built-In Aggregate Part 2

Parte da seção Fundamentos do Journey de SQL da Coddy — lição 35 de 72.

Às vezes, precisamos usar funções de agregação de maneiras mais complexas, como comparar cada linha com um valor agregado. É aqui que as consultas aninhadas são úteis.

Quando você quiser realizar cálculos que combinem linhas individuais com valores agregados, você precisa usar uma consulta aninhada. Aqui está o porquê:
Isso não funcionará:

SELECT value + MIN(value)
FROM table1

O motivo é que funções de agregação funcionam em toda a coluna, enquanto a referência 'value' está tentando trabalhar linha por linha. Para resolver isso, usamos uma consulta aninhada:

SELECT value + (SELECT MIN(value) FROM table1)
FROM table1

Isso funciona porque a consulta aninhada (SELECT MIN(value) FROM table1) é executada primeiro e retorna um único valor, que pode então ser usado na consulta principal para cada linha.

Casos de uso comuns para agregados aninhados:
1. Comparando cada valor com a média

2. Calculando a porcentagem do total

3. Encontrando diferenças em relação aos valores máximo ou mínimo

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • <strong>items</strong>: <strong>id</strong>, <strong>price</strong>

Calcule quanto o preço de cada item excede a média de preços de todos os itens. Exiba o ID do item, seu preço e a diferença da média. Nomeie a coluna de diferença como diff_from_avg.

Ordene os resultados pela diferença em ordem descendente.

Folha de consulta

Ao combinar linhas individuais com valores agregados, utilize consultas aninhadas porque funções agregadas operam em colunas inteiras enquanto colunas regulares operam linha por linha.

Isso não funcionará:

SELECT value + MIN(value)
FROM table1

Use uma consulta aninhada em vez disso:

SELECT value + (SELECT MIN(value) FROM table1)
FROM table1

A consulta aninhada é executada primeiro e retorna um único valor que pode ser usado na consulta principal para cada linha.

Casos de uso comuns:

  • Comparando cada valor com a média
  • Calculando a porcentagem do total
  • Encontrando diferenças em relação aos valores máximo ou mínimo

Experimente você mesmo

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos