Funções LEAD e LAG
Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 61 de 72.
As funções LEAD e LAG nos permitem acessar o valor da linha atual n passos atrás ou n passos à frente.
Por exemplo, se quisermos calcular a proporção da receita de uma empresa para a linha atual e para um mês atrás, podemos extrair o valor do mês anterior:
| id | revenue | month |
| 1 | 532 | 5 |
| 2 | 492 | 6 |
| 3 | 393 | 7 |
| 4 | 723 | 8 |
SELECT id, revenue, LAG(revenue, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY idIsso criará a seguinte tabela:
| id | revenue | prev_month_revenue |
| 1 | 532 | |
| 2 | 492 | 532 |
| 3 | 393 | 492 |
| 4 | 723 | 393 |
Assim, podemos calcular a proporção prev_month_revenue/revenue.
Se, em vez disso, usássemos a função LEAD, ela obteria a receita do próximo mês de cada linha:
SELECT id, revenue, LEAD(revenue, 1) OVER (ORDER BY MONTH) as next_month_revenue
FROM table1 ORDER BY id| id | revenue | next_month_revenue |
| 1 | 532 | 492 |
| 2 | 492 | 393 |
| 3 | 393 | 723 |
| 4 | 723 |
Desafio
FácilTabelas e colunas disponíveis:
air_conditioners:id,efficiency,strength,month
Compare a eficiência de cada ar-condicionado com a do anterior.
Escreva uma consulta que mostre a eficiência de cada ar-condicionado juntamente com a eficiência do ar-condicionado instalado anteriormente (com base no id). Além disso, calcule a diferença de eficiência entre o ar-condicionado atual e o anterior. Ordene o resultado por id e efficiency em ordem crescente.
Colunas esperadas na saída:
idefficiencyprevious_efficiency(usando LAG)efficiency_difference(eficiência atual - eficiência anterior)
Por fim, envolva a consulta e filtre a primeira linha, cujo previous_efficiency (e, portanto, efficiency_difference) está vazioso, ou seja, é NULL:
SELECT * FROM (
-- Your query here
)
WHERE previous_efficiency IS NOT NULLExperimente você mesmo
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êntesesBooleanos8Estatística
Agregação integrada – Parte 1Agregação integrada – Parte 2Agrupamento – Parte 1Agrupamento – Parte 2Subconsultas – Parte 1Subconsultas – Parte 2Recapitulação – Loja Total GainRecapitulação – Loja de ScootersRecapitulação – Cafeteria11Funções de janela parte 1
Função ROW_NUMBERCritério ORDER BYCritério PARTITION BYPARTITION e ORDERFunções LEAD e LAGRevisão - LEAD e LAGRevisão - ImagensRevisão - Caixas3Formato 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 colunasPratique por conta própria: Playground de SQL