Menggunakan DISTINCT ON untuk Memilih Id dengan Tarikh Maksimum Dikumpulkan Mengikut Kategori dalam PostgreSQL
Untuk memilih id dengan tarikh maksimum dalam setiap kategori, Postgres menawarkan ciri hebat yang dipanggil DISTINCT ON. Di bawah ialah pertanyaan untuk mencapai ini:
SELECT DISTINCT ON (category) id -- , category, date -- any other column (expression) from the same row FROM tbl ORDER BY category, date DESC;
DISTINCT ON membezakan baris berdasarkan lajur yang ditentukan dan baris berikutnya ditapis berdasarkan susunan isihan. Dengan menyusun baris dalam susunan tarikh menurun dalam setiap kategori, DISTINCT ON menyediakan tarikh maksimum untuk setiap kategori.
Awas: Pastikan lajur tarikh bukan NULL, kerana nilai NULL boleh mempengaruhi susunan isihan. Jika perlu, anda boleh menambah NULLS LAST untuk mengendalikan nilai NULL.
DISTINCT ON menawarkan kesederhanaan dan kecekapan. Prestasinya amat berkesan untuk set data yang lebih kecil. Untuk set data yang lebih besar dengan banyak baris bagi setiap kategori, pendekatan alternatif mungkin lebih sesuai, seperti yang disebut di bawah bahagian "Soalan Limpahan Tindanan Berkaitan".
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih ID dengan Cekap Tarikh Maksimum untuk Setiap Kategori dalam PostgreSQL Menggunakan DISTINCT ON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!