Pilih baris pertama dalam pertanyaan kumpulan postgresql
Apabila memproses data paket, biasanya kita perlu mengambil garis tertentu, seperti baris pertama atau terakhir dalam setiap kumpulan. Tutorial ini bertujuan untuk menjawab cara memilih baris pertama dalam pertanyaan kumpulan dalam PostgreSQL.
Penyelesaian: berbeza pada
PostgreSQL menyediakan ciri yang mudah, dipanggil pengedaran pada, yang membolehkan yang pertama (atau terakhir) langkah berulang dalam kumpulan. Tatabahasa adalah seperti berikut: <:>
Guna untuk masalah yang diberikan
<code class="language-sql">SELECT DISTINCT ON (DISTINCT_COLUMNS) COLUMNS FROM TABLE ORDER BY GROUPING_COLUMN, SORT_ORDER;</code>
pertanyaan ini akan menghasilkan output:
Penjelasan
<code class="language-sql">SELECT DISTINCT ON (customer) id, customer, total FROM purchases ORDER BY customer, total DESC, id;</code>
FIRST(id) | customer | FIRST(total) |
---|---|---|
1 | Joe | 5 |
2 | Sally | 3 |
Pertama ikuti hasil penyortiran pelanggan (untuk pengelompokan), dan kemudian disusun mengikut pesanan total (cari baris pertama dengan nilai total tertinggi), dan akhirnya disusun mengikut ID untuk menyelesaikan konflik (jika ada).
DISTINCT ON (customer)
ORDER BY customer, total DESC, id
, tetapi standard tidak memerlukan lajur ID tambahan. harus ditambah ke klausa:
DISTINCT ON
ORDER BY
Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Pertama dalam Kumpulan PostgreSQL Mengikut Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!