Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih ID dengan Tarikh Maksimum untuk Setiap Kategori dalam PostgreSQL?

Bagaimana untuk Memilih ID dengan Tarikh Maksimum untuk Setiap Kategori dalam PostgreSQL?

Barbara Streisand
Lepaskan: 2024-12-27 18:28:11
asal
767 orang telah melayarinya

How to Select the ID with the Maximum Date for Each Category in PostgreSQL?

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
Salin selepas log masuk

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;
Salin selepas log masuk

Output yang terhasil akan be:

id
7
2
6
Salin selepas log masuk

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;
Salin selepas log masuk

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!

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