Menu
Coddy logo textTech

Subconsultas – Parte 2

Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 39 de 72.

Existem três tipos principais de subconsultas:

  1. Subconsultas escalares - Retornam um único valor (uma linha, uma coluna)
  2. Subconsultas de linha - Retornam uma única linha com várias colunas
  3. Subconsultas de tabela - Retornam várias linhas e colunas

Por exemplo, aqui estão alguns casos de uso para cada tipo de subconsulta:

Subconsulta escalar - Encontrar funcionários que ganham mais do que o salário médio:

SELECT name, salary
FROM employees
WHERE salary > (
    SELECT AVG(salary)
    FROM employees
);

Subconsulta de linha - Encontre funcionário(s) com o mesmo departamento e salário que Alice

SELECT name
FROM employees
WHERE (department, salary) = (
    SELECT department, salary
    FROM employees
    WHERE name = 'Alice'
);

Subconsultas de tabela - Mostrar os departamentos e a quantidade 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ê precisar corresponder a várias colunas
  • Quando você precisar consultar um conjunto de resultados
challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • shop: price, quantity, category, list_date

Encontre as categorias cuja quantidade total seja maior que a média de todas as quantidades em shop.

Importante: Você deve usar uma subconsulta dentro da cláusula HAVING para calcular a média. Não use um valor fixo nem uma consulta separada: a subconsulta deve calcular AVG(quantity) diretamente da tabela shop dentro de HAVING.

Etapas para resolver:

  1. Primeiro, escreva uma subconsulta que calcule a média de todas as quantidades em shop: SELECT AVG(quantity) FROM shop
  2. Em seguida, para cada categoria, some suas quantidades e compare com essa subconsulta usando a palavra-chave HAVING

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