Mengambil ID Tarikh Maksimum Dikumpulkan Mengikut Kategori dalam PostgreSQL
Dalam operasi pangkalan data, selalunya perlu untuk mendapatkan semula rekod berdasarkan kriteria tertentu. Satu tugas sedemikian melibatkan pemilihan ID dengan tarikh maksimum untuk setiap kategori dalam set data tertentu. Ini boleh dicapai dengan berkesan dalam PostgreSQL menggunakan klausa DISTINCT ON.
Pertimbangkan data sampel berikut:
id category date 1 a 2013-01-01 2 b 2013-01-03 3 c 2013-01-02 4 a 2013-01-02 5 b 2013-01-02 6 c 2013-01-03 7 a 2013-01-03 8 b 2013-01-01 9 c 2013-01-01
Untuk memilih ID dengan tarikh maksimum bagi setiap kategori, anda boleh menggunakan yang berikut pertanyaan:
SELECT DISTINCT ON (category) id -- , category, date -- any other column (expression) from the same row FROM tbl ORDER BY category, date DESC;
Penjelasan:
Hasil pertanyaan ini akan menjadi:
7 2 6
Perhatikan bahawa DISTINCT ON amat berguna apabila berbilang rekod wujud dengan tarikh maksimum yang sama. Dalam kes sedemikian, ia menyediakan cara untuk memilih rekod unik pertama bagi setiap kategori.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Tarikh Maksimum untuk Setiap Kategori dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!