Simplifique consultas com a palavra-chave WITH
Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 49 de 72.
As consultas podem ficar muito confusas com a adição de muitas consultas internas. Por exemplo, aqui está uma consulta que possui muitas subconsultas:
SELECT * FROM table1
WHERE col2 IN (
SELECT col1 FROM table2
WHERE col3 + col2 > 3 AND col5 LIKE '%test%' AND col6 IN (
SELECT col5 FROM table3
WHERE col1 AND col3 OR col2
)
)Para facilitar, podemos usar a palavra-chave WITH query_name AS (...). Ela nos permite salvar uma consulta com um nome e usá-la onde quisermos:
WITH query1 AS (
SELECT col5 FROM table3
WHERE col1 AND col3 OR col2
), query2 AS (
SELECT col1 FROM table2
WHERE col3 + col2 > 3 AND col5 LIKE '%test%' AND col6 IN query1
)
SELECT * FROM table1
WHERE col2 IN (SELECT col1 FROM query2) AND col4 IN (SELECT col5 FROM query1)Aqui, reutilizamos query1 em query2 e na consulta principal.
Desafio
FácilTabelas e colunas disponíveis:
devices_specs:device_id,width,height,num_features,opiniondevices_score:device_id,score
escreva uma consulta que:
- Primeiro identifique os "dispositivos grandes" (dispositivos com
widthmaior que 200) - Em seguida, calcule a pontuação média desses dispositivos grandes. Dê a esta coluna o nome de
average_score
Use a cláusula WITH para resolver este problema.
Experimente você mesmo
-- Passo 1: nomeie um conjunto de resultados temporário que mantém apenas os dispositivos que interessam a você
WITH large_devices AS (
SELECT ____
FROM devices_specs
WHERE ____
)
-- Passo 2: reutilize esse conjunto de resultados temporário dentro da consulta principal
SELECT ____ AS average_score
FROM devices_score
WHERE device_id IN (____);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
4Mais palavras-chave
A palavra-chave INA palavra-chave BETWEENA palavra-chave LIKEA palavra-chave ASRecapitulação - Modelos de celulares2Condições
Noções básicas de condiçõesA palavra-chave ANDA palavra-chave ORA palavra-chave NOTCombinação de várias condiçõesParêntesesBooleanos3Formato de retorno específico
Valores nulosOrdenar resultados - Parte 1Ordenar resultados - Parte 2Recapitulação - Empresa de segurança cibernéticaLimitar o número de registrosRecapitulação - Fábrica de veículos6Desafios introdutórios
Revisão - Eleição parlamentarRevisão - Prisão criminal pela políciaRevisão - Recipiente de bebidas de barRevisão - Projetar novas colunas9Múltiplas tabelas
JOIN básico – Parte 1JOIN básico – Parte 2Revisão – JOINAuto-JOINRevisão – Auto-JOINUNIONSimplifique consultas com a palavra-chave WITHRevisão – Consultas com WITHRevisão – Prestador de serviços imobiliáriosPratique por conta própria: Playground de SQL