Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menambah Nombor Baris pada Keputusan Pertanyaan PostgreSQL Saya Menggunakan Fungsi Tetingkap?

Bagaimanakah Saya Boleh Menambah Nombor Baris pada Keputusan Pertanyaan PostgreSQL Saya Menggunakan Fungsi Tetingkap?

Barbara Streisand
Barbara Streisandasal
2024-12-26 15:37:15821semak imbas

How Can I Add Row Numbers to My PostgreSQL Query Results Using Window Functions?

Memaparkan Nombor Baris dalam Pertanyaan PostgreSQL dengan Fungsi Tetingkap

Untuk memudahkan rujukan dan analisis, memaparkan nombor baris untuk setiap rekod dalam pertanyaan PostgreSQL boleh sangat berfaedah. Dalam PostgreSQL 8.4 dan lebih baru, fungsi tetingkap berkuasa ROW_NUMBER() mendayakan kefungsian ini.

Menggunakan Fungsi ROW_NUMBER()

Untuk menunjukkan nombor cerapan berurutan bagi setiap rekod , anda boleh menggunakan fungsi ROW_NUMBER() dalam pertanyaan anda. Sintaksnya termasuk klausa ORDER BY untuk menentukan urutan baris. Begini cara anda boleh melaksanakannya:

SELECT ROW_NUMBER() OVER (ORDER BY field NULLS LAST) AS rownum, *
FROM foo_tbl
ORDER BY field;

Dalam pertanyaan ini:

  • ROW_NUMBER() OVER (ORDER BY field NULLS LAST) mengira nombor baris untuk setiap rekod, memesan baris dalam urutan menaik.
  • foo_tbl mewakili jadual yang mengandungi data yang anda inginkan untuk menghitung.
  • medan menentukan lajur yang anda mahu menyusun baris. Nilai null dikendalikan oleh pilihan NULLS LAST, meletakkannya pada penghujung jujukan.

Pendekatan Ringkas tanpa Memesan

Jika susunan baris tidak penting , anda boleh memudahkan pertanyaan dengan mengecualikan PESANAN OLEH klausa:

SELECT ROW_NUMBER() OVER(), *
FROM foo_tbl;

Pendekatan ini memberikan nombor baris kepada setiap rekod tanpa mengambil kira sebarang susunan atau pengisihan tertentu.

Contoh

Pertimbangkan SQL berikut Demonstrasi biola: https://www.sqlfiddle.com/#!17/665c8e/1

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambah Nombor Baris pada Keputusan Pertanyaan PostgreSQL Saya Menggunakan Fungsi Tetingkap?. 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