Olá Carolina, tudo bem com você?
A subquery, ou subconsulta, é uma consulta SQL aninhada dentro de outra consulta SQL. Ela permite que você use o resultado de uma consulta como entrada para outra. Isso é útil quando você precisa manipular seus dados de maneiras mais complexas.
No exemplo que você mostrou, a subquery foi usada para criar uma nova tabela temporária que contém apenas as colunas gender
e duration_minutes
da tabela citibike_trips
. Essa nova tabela temporária foi então usada para selecionar todas as linhas onde duration_minutes
é menor que 10.
A principal diferença entre as duas consultas que você postou é a maneira como a subquery é usada.
Na primeira consulta, a subquery é usada diretamente na cláusula FROM
:
SELECT * FROM (SELECT gender, tripduration/60 as duration_minutes
FROM `bigquery-public-data`.new_york.citibike_trips citibike_trips)
where duration_minutes <10
LIMIT 5;
No exemplo acima, a subquery está criando uma tabela temporária que é usada diretamente na consulta principal.
Na segunda consulta, a subquery é usada com a cláusula WITH
para criar uma tabela temporária nomeada:
with all_trips as (SELECT gender, tripduration/60 as duration_minutes
FROM `bigquery-public-data`.new_york.citibike_trips citibike_trips)
SELECT * FROM all_trips where duration_minutes <10
limit 5;
Neste outro exemplo acima, a subquery está criando uma tabela temporária chamada all_trips
que é então usada na consulta principal. A vantagem de usar a cláusula WITH é que ela permite que você reutilize a mesma subquery várias vezes em sua consulta principal, o que pode tornar sua consulta mais eficiente e mais fácil de ler e manter.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!