Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Tarikh dan Nilai Rekod Terkini dengan Cekap untuk Setiap Pengguna dalam Pangkalan Data?

Bagaimana untuk Mendapatkan Tarikh dan Nilai Rekod Terkini dengan Cekap untuk Setiap Pengguna dalam Pangkalan Data?

Mary-Kate Olsen
Lepaskan: 2025-01-15 16:56:45
asal
701 orang telah melayarinya

How to Efficiently Retrieve the Latest Record Date and Value for Each User in a Database?

Mengekstrak Tarikh Kemasukan dan Nilai Terkini untuk Setiap Pengguna

Panduan ini menunjukkan cara untuk membuat pertanyaan jadual pangkalan data entri log masuk pengguna dengan cekap untuk mendapatkan tarikh terkini dan nilai yang berkaitan untuk setiap pengguna. Kami akan meneroka dua kaedah: pendekatan gabungan tradisional dan kaedah yang lebih mantap menggunakan fungsi tetingkap.

Kaedah 1: Sertai Dalaman dengan Subkueri

Pendekatan biasa menggunakan gabungan dalaman dengan subkueri untuk mencari tarikh maksimum bagi setiap pengguna:

<code class="language-sql">select t.username, t.date, t.value
from MyTable t
inner join (
    select username, max(date) as MaxDate
    from MyTable
    group by username
) tm on t.username = tm.username and t.date = tm.MaxDate</code>
Salin selepas log masuk

Pertanyaan ini berkesan mendapatkan semula rekod terkini untuk setiap nama pengguna. Walau bagaimanapun, kelemahan yang berpotensi ialah ia mungkin mengembalikan berbilang entri jika beberapa rekod berkongsi tarikh maksimum yang sama untuk pengguna tertentu.

Kaedah 2: Fungsi Tetingkap untuk Mengendalikan Tarikh Pendua

Untuk mengendalikan tarikh pendua yang berpotensi, fungsi tetingkap menawarkan penyelesaian unggul:

<code class="language-sql">select x.username, x.date, x.value 
from (
    select username, date, value,
        row_number() over (partition by username order by date desc) as _rn
    from MyTable 
) x
where x._rn = 1</code>
Salin selepas log masuk

Kaedah ini memberikan kedudukan unik kepada setiap rekod untuk setiap pengguna, disusun mengikut tarikh dalam tertib menurun. Dengan menapis baris dengan kedudukan 1 (_rn = 1), kami menjamin pengambilan satu rekod terbaharu, walaupun dengan kehadiran berbilang entri dengan tarikh terkini yang sama. Ini memastikan ketepatan dan mengelakkan kekaburan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Tarikh dan Nilai Rekod Terkini dengan Cekap untuk Setiap Pengguna dalam Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan