Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Baris Terakhir dengan Cekap untuk Setiap Pengecam Unik dalam PostgreSQL?

Bagaimana untuk Mendapatkan Baris Terakhir dengan Cekap untuk Setiap Pengecam Unik dalam PostgreSQL?

DDD
DDDasal
2024-12-17 14:59:10395semak imbas

How to Efficiently Retrieve the Last Row for Each Unique Identifier in PostgreSQL?

Postgresql: Mengekstrak Baris Terakhir untuk Setiap Pengecam Unik

Dalam PostgreSQL, anda mungkin menghadapi situasi di mana anda perlu mengekstrak maklumat daripada baris terakhir yang dikaitkan dengan setiap pengecam yang berbeza dalam set data. Pertimbangkan data berikut:

id date another_info
1 2014-02-01 kjkj
1 2014-03-11 ajskj
1 2014-05-13 kgfd
2 2014-02-01 SADA 4-3 2014 -01 sfdg
3 2014-06-12 fdsA

Untuk mendapatkan semula baris terakhir maklumat bagi setiap id unik dalam set data, anda boleh menggunakan Postgres' efficient distinct pada operator:

select distinct on (id) id, date, another_info
from the_table
order by id, date desc;
Pertanyaan ini akan mengembalikan perkara berikut output:

tarikh id another_info

1 2014-05-13 kgfd
2 2014-02-01 SADA
3 2014-06-12 fdsA

select id, date, another_info
from (
  select id, date, another_info, 
         row_number() over (partition by id order by date desc) as rn
  from the_table
) t
where rn = 1
order by id;
Dalam kebanyakan kes, penyelesaian yang melibatkan fungsi tetingkap adalah lebih pantas daripada menggunakan sub-pertanyaan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Baris Terakhir dengan Cekap untuk Setiap Pengecam Unik dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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