Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Baris Pertama Setiap Kumpulan dalam PostgreSQL GROUP BY Query?

Bagaimana untuk Memilih Baris Pertama Setiap Kumpulan dalam PostgreSQL GROUP BY Query?

DDD
Lepaskan: 2025-01-25 20:21:10
asal
968 orang telah melayarinya

How to Select the First Row of Each Group in a PostgreSQL GROUP BY Query?

Pilih baris pertama dalam PostgreSQL GROUP BY group

Dalam PostgreSQL, memilih baris pertama setiap kumpulan dalam operasi GROUP BY adalah keperluan biasa. Untuk ini kita boleh menggunakan klausa DISTINCT ON yang berkuasa.

<code class="language-sql">SELECT DISTINCT ON (customer) id, customer, total
FROM purchases
ORDER BY customer, total DESC</code>
Salin selepas log masuk
Klausa

DISTINCT ON membolehkan kita mentakrifkan ungkapan yang dianggap pendua. Dalam contoh ini, kami menetapkan lajur customer, yang bermaksud bahawa hanya baris dengan nilai customer yang sama akan dianggap pendua.

Klausa

ORDER BY mentakrifkan susunan baris diproses. Baris pertama dalam setiap kumpulan customer akan menjadi baris dengan jumlah nilai tertinggi. Jika terdapat berbilang baris dengan jumlah nilai maksimum yang sama, faktor penentu ialah susunan lajur id ditakrifkan.

Isi penting

  • DISTINCT ON ialah sambungan kepada PostgreSQL yang membolehkan kami menentukan ungkapan yang menentukan pendua.
  • Ungkapan
  • DISTINCT ON mesti sepadan dengan ungkapan utama dalam klausa ORDER BY.
  • Klausa
  • ORDER BY boleh digunakan untuk mengutamakan baris dalam setiap kumpulan.
  • Anda boleh memasukkan ungkapan dalam senarai SELECT yang tiada dalam klausa DISTINCT ON atau ORDER BY.
  • Indeks yang digunakan oleh pertanyaan boleh menjejaskan prestasi dengan ketara. Indeks berbilang lajur yang merangkumi lajur customer, total dan id, dalam susunan yang sama dengan pertanyaan, akan memberikan prestasi terbaik.

Nota Tambahan

Untuk data dengan customer kardinaliti lajur tinggi (sebilangan kecil baris setiap pelanggan), kaedah DISTINCT ON adalah sangat cekap. Walau bagaimanapun, untuk customer data dengan kardinaliti lajur rendah (bilangan baris yang besar bagi setiap pelanggan), teknik pertanyaan lain mungkin lebih cekap.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Pertama Setiap Kumpulan dalam PostgreSQL GROUP BY Query?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan