Menu
Coddy logo textTech

Revisão – Prestador de serviços imobiliários

Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 51 de 72.

challenge icon

Desafio

Médio

Tabelas e colunas disponíveis:

  • real_estate: asset_id, value, date
  • potential: asset_id, forecast

Alguns analistas preveem qual será o crescimento dos ativos imobiliários. Queremos verificar se a previsão deles é verdadeira. 

Para cada ativo na tabela real_estate, calcule a razão entre o value de uma data mais recente e o valor de uma data mais antiga.

Por exemplo, se houver um ativo cujo valor em 2022-01-01 era 5 e em 2022-05-01 era 10, então essa razão é 10/5 = 2.

Ignore todas as comparações em que a diferença de dias entre as duas datas seja menor que 101.

Há muitas datas para cada ativo, portanto há muitas razões para comparar. mantenha apenas a razão maior para cada ativo.

Por fim, divida essa razão pela previsão correspondente da tabela potential (chame esse campo de ratio_forecast) e ordene os resultados em ordem decrescente.

O resultado final deve conter asset_id e ratio_forecast.

Mantenha apenas os ativos cujo ratio_forecast seja maior que 1.

 

Observação: Para obter um resultado decimal da operação de divisão (/), às vezes é necessário multiplicar o numerador por 1.0.

Por exemplo, em vez de a / b, use a * 1.0 / b para obter o resultado decimal (quando a e b são variáveis)

Experimente você mesmo

-- Consulta externa: divida o número calculado abaixo pelo correspondente da outra tabela
SELECT potential.asset_id, ____ AS ratio_forecast
FROM (
    -- Consulta interna: emparelhe a tabela consigo mesma para que uma linha mais antiga possa ser comparada a uma mais nova
    SELECT r1.asset_id, ____ AS ratio
    FROM real_estate AS r1
    JOIN real_estate AS r2 ON ____
    -- Mantenha apenas os pares que estão suficientemente distantes no tempo
    WHERE JULIANDAY(r2.date) - JULIANDAY(r1.date) > ____
    -- Uma linha de resultado por grupo, mantendo apenas a única maior comparação
    GROUP BY r1.asset_id
) AS actual
JOIN potential ON ____
WHERE ratio_forecast > 1
ORDER BY ____

Todas as lições de Fundamentos

Pratique por conta própria: Playground de SQL