Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Usando Subconsultas Internas na Seção FROM | Subconsultas Aninhadas
SQL Intermediário

bookUsando Subconsultas Internas na Seção FROM

Uma subconsulta interna cria uma tabela com a qual realizamos operações na consulta externa.

A partir disso, podemos concluir que também é possível utilizar uma subconsulta interna dentro da seção FROM para selecionar algo dessa tabela.

Vamos considerar um exemplo em que precisamos trabalhar com employees cujo salary está acima de um determinado valor. Mas, em vez de uma cláusula WHERE, utilizaremos uma subconsulta interna:

123456
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
copy

Criamos uma nova tabela usando uma subconsulta interna com a qual podemos trabalhar e obter informações.

Nota

Observe que, para tal tabela, é essencial fornecer um alias.

Quando isso pode ser útil?

Essa consulta é altamente legível; às vezes, pode substituir uma cláusula WHERE.

Além disso, se for necessário trabalhar não com a tabela inteira, mas apenas com uma parte filtrada, uma subconsulta interna na seção FROM pode ser extremamente útil.

Tarefa

Swipe to start coding

Sua tarefa é recuperar o orçamento médio (coluna budget) de todos os departamentos gerenciais da tabela department. Utilize uma subconsulta interna na seção FROM para filtrar apenas os departamentos do tipo gerencial. Além disso, use o alias manager_departments para esta tabela, pois a tarefa será verificada dessa forma.

A resposta deve conter apenas uma coluna, average_budget. Este é um alias para a função agregadora AVG().

Observação

Esta tarefa também poderia ser realizada usando uma cláusula WHERE, mas utilizamos uma consulta aninhada aqui para praticar essa sintaxe, que será útil para resolver problemas mais complexos no futuro.

Instruções Resumidas

  • Recupere o valor médio da coluna budget.
  • Atribua o alias average_budget a essa coluna.
  • Na cláusula FROM, escreva uma consulta aninhada.
  • Na consulta aninhada, selecione todas as colunas da tabela department.
  • Na consulta aninhada, utilize a cláusula WHERE com a condição type = 'manager'.
  • Atribua o alias manager_departments à consulta aninhada.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain why we need to use an alias for the inner subquery?

When should I use an inner subquery instead of a WHERE clause?

Can you give more examples of using inner subqueries in SQL?

close

Awesome!

Completion rate improved to 4

bookUsando Subconsultas Internas na Seção FROM

Deslize para mostrar o menu

Uma subconsulta interna cria uma tabela com a qual realizamos operações na consulta externa.

A partir disso, podemos concluir que também é possível utilizar uma subconsulta interna dentro da seção FROM para selecionar algo dessa tabela.

Vamos considerar um exemplo em que precisamos trabalhar com employees cujo salary está acima de um determinado valor. Mas, em vez de uma cláusula WHERE, utilizaremos uma subconsulta interna:

123456
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
copy

Criamos uma nova tabela usando uma subconsulta interna com a qual podemos trabalhar e obter informações.

Nota

Observe que, para tal tabela, é essencial fornecer um alias.

Quando isso pode ser útil?

Essa consulta é altamente legível; às vezes, pode substituir uma cláusula WHERE.

Além disso, se for necessário trabalhar não com a tabela inteira, mas apenas com uma parte filtrada, uma subconsulta interna na seção FROM pode ser extremamente útil.

Tarefa

Swipe to start coding

Sua tarefa é recuperar o orçamento médio (coluna budget) de todos os departamentos gerenciais da tabela department. Utilize uma subconsulta interna na seção FROM para filtrar apenas os departamentos do tipo gerencial. Além disso, use o alias manager_departments para esta tabela, pois a tarefa será verificada dessa forma.

A resposta deve conter apenas uma coluna, average_budget. Este é um alias para a função agregadora AVG().

Observação

Esta tarefa também poderia ser realizada usando uma cláusula WHERE, mas utilizamos uma consulta aninhada aqui para praticar essa sintaxe, que será útil para resolver problemas mais complexos no futuro.

Instruções Resumidas

  • Recupere o valor médio da coluna budget.
  • Atribua o alias average_budget a essa coluna.
  • Na cláusula FROM, escreva uma consulta aninhada.
  • Na consulta aninhada, selecione todas as colunas da tabela department.
  • Na consulta aninhada, utilize a cláusula WHERE com a condição type = 'manager'.
  • Atribua o alias manager_departments à consulta aninhada.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

close

Awesome!

Completion rate improved to 4
Seção 2. Capítulo 3
single

single

some-alt