Subqueries Part 2
Parte da seção Fundamentos do Journey de SQL da Coddy — lição 39 de 72.
Existem três tipos principais de subconsultas:
- Subconsultas Escalares - Retorna um único valor (uma linha, uma coluna)
- Subconsultas de Linha - Retorna uma única linha com múltiplas colunas
- Subconsultas de Tabela - Retorna múltiplas linhas e colunas
Por exemplo, aqui estão alguns casos de uso para cada tipo de subquery:
Scalar Subquery - Encontrar colaboradores que ganham mais do que a média de salary:
SELECT name, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);Subconsulta de linha - Encontrar funcionário(s) com o mesmo `department` e `salary` que `Alice`
SELECT name
FROM employees
WHERE (department, salary) = (
SELECT department, salary
FROM employees
WHERE name = 'Alice'
);Subqueries de tabela - Mostrar departamentos e a contagem de funcionários
SELECT department, count
FROM (
SELECT department, COUNT(*) as count
FROM employees
GROUP BY department
) as dept_counts;Observe os casos de uso:
- Escalar - Comparações simples (>, <, =)
- Quando você precisa corresponder a múltiplas colunas
- Quando você precisa consultar a partir de um conjunto de resultados
Desafio
FácilTabelas e colunas disponíveis:
shop:price,quantity,category,list_date
Encontre as categorias onde a quantidade total é maior que a média de todas as quantidades na tabela shop.
Importante: Você deve usar uma subquery dentro da cláusula HAVING para calcular a média. Não use um valor fixo nem uma consulta separada — a subquery deve calcular AVG(quantity) da tabela shop diretamente dentro do HAVING.
Passos para resolver:
- Primeiro, escreva uma subquery que calcula a média de todas as quantidades na tabela shop:
SELECT AVG(quantity) FROM shop - Em seguida, para cada categoria, some suas quantidades e compare com esta subquery usando a palavra-chave
HAVING
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