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 se tornam úteis.

Quando você deseja realizar cálculos que combinam linhas individuais com valores agregados, você precisa usar uma consulta aninhada. Aqui está o porquê:
Isso não fornecerá o resultado por linha que você deseja:

SELECT value + MIN(value)
FROM table1

A razão é que as funções de agregação trabalham 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 agregações aninhadas:
1. Comparar cada valor com a média

2. Calculando a porcentagem do total

3. Encontrando diferenças a partir de valores máximos ou mínimos

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

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

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

Ordene os resultados pela diferença em ordem decrescente.

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