Ringkasan: Kontraktor Properti
Termasuk bagian Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 51 dari 72.
Tantangan
SedangTabel dan kolom yang tersedia:
real_estate:asset_id,value,datepotential: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
4Kata Kunci Lainnya
Kata kunci INKata kunci BETWEENKata kunci LIKEKata kunci ASRangkuman: Model Ponsel2Kondisi
Dasar KondisiKata Kunci ANDKata Kunci ORKata Kunci NOTMenggabungkan Beberapa KondisiTanda KurungNilai Boolean3Format Pengembalian Khusus
Nilai nullUrutkan Hasil Bagian 1Urutkan Hasil Bagian 2Ulasan: Perusahaan Keamanan SiberBatasi Jumlah RecordUlasan: Pabrik Kendaraan6Tantangan Pengantar
Ulasan: Pemilihan ParlemenUlasan: Polisi Menangkap Pelaku KejahatanUlasan: Wadah Minuman BarUlasan: Insinyur Membuat Kolom Baru9Beberapa Tabel
Join Dasar Bagian 1Join Dasar Bagian 2Ringkasan: JoinSelf joinRingkasan: Self joinUnionSederhanakan query dengan kata kunci WITHRingkasan: Query WITHRingkasan: Kontraktor PropertiLatihan sendiri: Playground SQL