Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menjana Nombor Baris Berjujukan dalam Pertanyaan PostgreSQL?

Bagaimana untuk Menjana Nombor Baris Berjujukan dalam Pertanyaan PostgreSQL?

Susan Sarandon
Lepaskan: 2024-12-28 00:53:14
asal
905 orang telah melayarinya

How to Generate Sequential Row Numbers in PostgreSQL Queries?

Menjana Nombor Baris Berjujukan dalam Pertanyaan PostgreSQL

Apabila bekerja dengan pertanyaan PostgreSQL, adalah wajar untuk memaparkan nombor pemerhatian untuk setiap rekod yang dikembalikan . Dalam versi PostgreSQL 8.4 dan yang lebih baru, ini boleh dicapai menggunakan fungsi tetingkap yang berkuasa row_number().

Syntax:

Untuk menjana nombor baris berjujukan, gunakan yang berikut sintaks:

select row_number() over (order by <field> nulls last) as rownum, *
from <table_name>
order by <field>;
Salin selepas log masuk

Parameter:

  • : Medan yang digunakan untuk menyusun baris.
  • < ;table_name>: Jadual dari mana data berada dipilih.

Contoh:

Untuk memaparkan nombor pemerhatian bagi jadual bernama foo_tbl yang disusun mengikut medan id, gunakan pertanyaan berikut:

select row_number() over (order by id nulls last) as rownum, *
from foo_tbl
order by id;
Salin selepas log masuk

Sintaks Ringkas:

Jika pesanan tidak perlu, pertanyaan boleh dipermudahkan dengan meninggalkan susunan mengikut klausa:

select row_number() over(), *  -- no fields are needed
from foo_tbl;
Salin selepas log masuk

Ini akan menjana nombor baris berurutan tanpa sebarang susunan tertentu.

Bukti Konsep:

Bukti konsep SQL Fiddle berikut menunjukkan penggunaan fungsi row_number() untuk jana nombor baris berjujukan:

import sqlalchemy

# Create a test table
engine = sqlalchemy.create_engine('postgresql://postgres:my_password@localhost:5432/test_db')
metadata = sqlalchemy.MetaData()
table = sqlalchemy.Table('test_table', metadata,
    sqlalchemy.Column('id', sqlalchemy.Integer, primary_key=True),
    sqlalchemy.Column('name', sqlalchemy.String(255)),
    sqlalchemy.Column('score', sqlalchemy.Float),
)
metadata.create_all(engine)

# Insert some data into the table
insert_data = [
    {'id': 1, 'name': 'John', 'score': 90},
    {'id': 2, 'name': 'Jane', 'score': 85},
    {'id': 3, 'name': 'Bob', 'score': 95},
]
insert = table.insert().values(insert_data)
engine.execute(insert)

# Query the table with row numbers
select_query = sqlalchemy.select([
    sqlalchemy.func.row_number().over().label('rownum'),
    table.c.id,
    table.c.name,
    table.c.score,
]).order_by(table.c.id)
results = engine.execute(select_query).fetchall()

# Print the results
for result in results:
    print(f"Row {result.rownum}: {result.id}, {result.name}, {result.score}")
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Baris Berjujukan dalam Pertanyaan 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