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

Pratique por conta própria: Playground de SQL