Ainda não entendi muito bem quando e o porquê uma subquery é necessária.
Ainda não entendi muito bem quando e o porquê uma subquery é necessária.
Oi Engenharia, acabei de entrar e ainda estou me familiarizando com a plataforma, inclusive não estou conseguindo acessar nenhum curso, mas vamos à sua questão.
Suponha que você tem uma tabela de vendas com duas colunas: nome do vendedor, venda de janeiro e venda de fevereiro. Imagine algumas buscas nessa tabela, segundo a necessidade do seu/sua superior...
Pois bem, agora imagine que ele(a) lhe pediu para listar todos os vendedores que tiveram vendas maiores do que a média de todas as vendas realizadas no mês de janeiro. Como você faria? É aí que entra uma das necessidades de usar subquery. Como você já deve ter visto esse recuro consiste em uma query dentro de outra, normalmente utilizada em conjunto com a cláusula where.
Uma forma de utilizar bem esse recurso é analisar passo-a-passo o que você precisa, literalmente. Por exemplo: precisamos da média de janeiro para verificar quem vendeu mais do que a média de todas as vendas desse mês, então uma alternativa é escrever primeiro a query que irá retornar essa média (a média das vendas de janeiro):
select avg(jan) from tabela;
Depois você pode fazer a projeção que precisa adicionando no filtro essa query:
/* query final */
select nome, jan from tabela
where jan > (select avg(jan) from tabela);
E assim você terá o que seu(a) chefe solicitou. Espero que tenha entendido e de alguma forma tenha ajudado a compreender seu uso. Essa é apenas uma das necessidades em que subqueries podem ser usadas.
Obrigada. Consegui entender um pouco melhor ^^