Memilih ID dengan Tarikh Maksimum Dikumpulkan Mengikut Kategori dalam PostgreSQL
Untuk mendapatkan ID dengan tarikh maksimum bagi setiap kategori dalam PostgreSQL, kita boleh menggunakan klausa DISTINCT ON yang berkuasa, yang merupakan lanjutan kepada perintah DISTINCT standard. Klausa ini membenarkan kami mengagregatkan data berdasarkan kriteria tertentu sambil mengekalkan keunikan baris individu.
Pertimbangkan sampel data 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 menggunakan DISTINCT ON sintaks ialah:
SELECT DISTINCT ON (category) id FROM tbl ORDER BY category, date DESC;
Output yang terhasil akan be:
id 7 2 6
Pertanyaan ini mengisih data dahulu mengikut kategori dalam tertib menaik dan kemudian mengikut tarikh dalam tertib menurun. Klausa DISTINCT ON kemudiannya memastikan bahawa untuk setiap kategori berbeza, hanya baris dengan tarikh maksimum dipaparkan, menghasilkan output yang diingini.
Jika lajur tarikh membenarkan nilai NULL, adalah penting untuk memasukkan NULLS Klausa LAST untuk memastikan bahawa nilai NULL diisih terakhir. Contohnya:
SELECT DISTINCT ON (category) id FROM tbl ORDER BY category, date DESC NULLS LAST;
Atas ialah kandungan terperinci Bagaimana untuk Memilih ID dengan Tarikh Maksimum untuk Setiap Kategori dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!