Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Nilai Terkini untuk Setiap Kumpulan Berdasarkan Cap Masa dalam Oracle SQL?
Mengekstrak Entri Terkini untuk Setiap Kumpulan dalam Oracle SQL
Tutorial ini menunjukkan tugas pangkalan data biasa: mendapatkan semula rekod terkini untuk setiap kumpulan berdasarkan cap masa. Kami akan menggunakan jadual yang mengandungi ID, cap masa dan kuantiti sebagai contoh.
Cabaran:
Memandangkan jadual dengan lajur ID, cap masa ("tarikh") dan kuantiti ("kuantiti"), bagaimanakah kita boleh memilih kuantiti terkini (dan cap masa yang berkaitan) dengan cekap untuk setiap ID unik?
Penyelesaian:
Ini boleh dicapai menggunakan pendekatan berikut:
Pertanyaan Oracle SQL berikut melaksanakan penyelesaian ini:
<code class="language-sql">SELECT x.id, x."date", x.quantity FROM ( SELECT id, "date", RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk, quantity FROM qtys ) x WHERE x.rnk = 1;</code>
Melanjutkan Pertanyaan:
Pertanyaan asas ini boleh disesuaikan untuk memenuhi keperluan yang lebih kompleks:
WHERE
pada pertanyaan dalaman untuk mengehadkan hasil pada tempoh masa tertentu.id
. Sebagai contoh, anda boleh menyertai jadual yang mengandungi ID dan nama untuk memasukkan nama dalam output.Kaedah ini menyediakan cara yang mantap dan cekap untuk mendapatkan semula nilai terkini bagi setiap kumpulan berdasarkan cap masa dalam Oracle SQL, yang boleh digunakan untuk pelbagai tugasan analisis dan manipulasi data.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Terkini untuk Setiap Kumpulan Berdasarkan Cap Masa dalam Oracle SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!