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 table1O 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 table1Isso 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
Desafio
FácilTabelas 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 table1Use uma consulta aninhada em vez disso:
SELECT value + (SELECT MIN(value) FROM table1)
FROM table1A 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
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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns