Menu
Coddy logo textTech

Powtórka — wykonawca z branży nieruchomości

Część sekcji Podstawy ścieżki SQL w Coddy. Lekcja 51 z 72.

challenge icon

Wyzwanie

Średni

Dostępne tabele i kolumny:

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

Niektórzy analitycy prognozują wzrost wartości aktywów na rynku nieruchomości. Chcemy sprawdzić, czy ich prognoza jest prawidłowa. 

Dla każdego aktywa w tabeli real_estate oblicz stosunek wartości z nowszej daty do wartości ze starszej daty.

Na przykład, jeśli wartość pewnego aktywa wynosiła 5 w dniu 2022-01-01, a 10 w dniu 2022-05-01, to ten stosunek wynosi 10/5 = 2.

Pomiń wszystkie porównania, w których różnica między datami jest mniejsza niż 101 dni.

Dla każdego aktywa jest wiele dat, więc istnieje wiele stosunków do porównania. Zachowaj tylko największy stosunek dla każdego aktywa.

Na koniec podziel ten stosunek przez odpowiadającą mu prognozę z tabeli potential (nazwij to pole ratio_forecast) i posortuj wyniki malejąco.

Wynik końcowy powinien zawierać asset_id i ratio_forecast.

Zachowaj tylko te aktywa, dla których ratio_forecast jest większe niż 1.

 

Uwaga: Aby uzyskać wynik dzielenia (/) w postaci liczby dziesiętnej, czasami trzeba pomnożyć licznik przez 1.0.

Na przykład zamiast a / b użyj a * 1.0 / b, aby uzyskać wynik dziesiętny (gdy a i b są zmiennymi)

Spróbuj swoich sił

-- Zapytanie zewnętrzne: podziel liczbę obliczoną poniżej przez odpowiadającą jej liczbę z drugiej tabeli
SELECT potential.asset_id, ____ AS ratio_forecast
FROM (
    -- Zapytanie wewnętrzne: połącz tabelę z nią samą, aby porównać starszy wiersz z nowszym
    SELECT r1.asset_id, ____ AS ratio
    FROM real_estate AS r1
    JOIN real_estate AS r2 ON ____
    -- Zachowaj tylko pary wystarczająco odległe od siebie w czasie
    WHERE JULIANDAY(r2.date) - JULIANDAY(r1.date) > ____
    -- Jeden wiersz wyniku na grupę, z zachowaniem tylko największej wartości porównania
    GROUP BY r1.asset_id
) AS actual
JOIN potential ON ____
WHERE ratio_forecast > 1
ORDER BY ____

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online SQL