Menu
CoddyTech

Ringkasan: Kontraktor Properti

Termasuk bagian Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 51 dari 72.

challenge icon

Tantangan

Sedang

Tabel dan kolom yang tersedia:

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

Beberapa analis memperkirakan pertumbuhan aset real estat. Kita ingin memeriksa apakah perkiraan mereka benar. 

Untuk setiap aset dalam tabel real_estate, hitung rasio antara value pada tanggal yang lebih baru dan nilai pada tanggal yang lebih lama.

Misalnya, jika ada aset yang nilainya pada 2022-01-01 adalah 5 dan pada 2022-05-01 adalah 10, maka rasionya adalah 10/5 = 2.

Abaikan semua perbandingan yang selisih harinya antara kedua tanggal kurang dari 101.

Ada banyak tanggal untuk setiap aset, jadi ada banyak rasio untuk dibandingkan. Simpan hanya rasio terbesar untuk setiap aset.

Terakhir, bagi rasio ini dengan perkiraan yang sesuai dari tabel potential (sebut kolom ini ratio_forecast) dan urutkan hasilnya secara menurun.

Hasil akhir harus memiliki asset_id dan ratio_forecast.

Simpan hanya aset dengan ratio_forecast lebih besar dari 1.

 

Catatan: Untuk mendapatkan hasil desimal dari operasi pembagian (/), terkadang kamu perlu mengalikan pembilang dengan 1.0.

Misalnya, alih-alih a / b, gunakan a * 1.0 / b untuk mendapatkan hasil desimal (saat a dan b adalah variabel)

Coba sendiri

-- query luar: bagi angka yang dihitung di bawah dengan angka yang sesuai dari tabel lain
SELECT potential.asset_id, ____ AS ratio_forecast
FROM (
    -- query dalam: pasangkan tabel dengan dirinya sendiri agar baris lama dapat dibandingkan dengan baris baru
    SELECT r1.asset_id, ____ AS ratio
    FROM real_estate AS r1
    JOIN real_estate AS r2 ON ____
    -- Sisakan hanya pasangan yang jarak waktunya cukup jauh
    WHERE JULIANDAY(r2.date) - JULIANDAY(r1.date) > ____
    -- Satu baris hasil per grup, sisakan hanya hasil perbandingan terbesar
    GROUP BY r1.asset_id
) AS actual
JOIN potential ON ____
WHERE ratio_forecast > 1
ORDER BY ____

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground SQL