Rumah > pangkalan data > tutorial mysql > Bagaimana cara memilih baris dengan nilai maksimum dalam lajur menggunakan SQL?

Bagaimana cara memilih baris dengan nilai maksimum dalam lajur menggunakan SQL?

Linda Hamilton
Lepaskan: 2025-01-25 20:52:10
asal
881 orang telah melayarinya

How to Select Rows with the Maximum Value in a Column Using SQL?

Petua SQL: Tapis baris dengan cekap sepadan dengan nilai maksimum lajur

Dalam pangkalan data MySQL, selalunya perlu untuk mengekstrak baris yang sepadan dengan nilai maksimum lajur tertentu daripada kumpulan rekod. Artikel ini menerangkan dua kaedah utama.

Kaedah 1: Subkueri dan sambungan

Kaedah ini menggunakan subkueri untuk menentukan nilai maksimum dalam setiap kumpulan. Subkueri mengumpulkan baris mengikut pengecam kumpulan dan mengembalikan nilai maksimum lajur yang ditentukan. Kemudian, gabungkan keputusan dengan jadual utama menggunakan pengecam kumpulan dan nilai maksimum sebagai syarat gabungan.

Contoh:

<code class="language-sql">SELECT a.id, a.rev, a.contents
FROM YourTable a
INNER JOIN (
    SELECT id, MAX(rev) rev
    FROM YourTable
    GROUP BY id
) b ON a.id = b.id AND a.rev = b.rev</code>
Salin selepas log masuk

Kaedah 2: Sambungan diri dan penapisan

Cara lain ialah dengan menyertai jadual utama dengan sendiri menggunakan gabungan luar kiri. Syarat cantum digunakan pada pengecam kumpulan dan syarat tambahan ditambahkan untuk membandingkan nilai di sebelah kiri dan kanan cantuman. Penapis memastikan bahawa hanya baris tanpa baris yang sepadan di sebelah kanan (iaitu baris dengan nilai terbesar) disertakan dalam hasil carian.

Contoh:

<code class="language-sql">SELECT a.*
FROM YourTable a
LEFT OUTER JOIN YourTable b
ON a.id = b.id AND a.rev < b.rev
WHERE b.id IS NULL;</code>
Salin selepas log masuk

Ringkasan

Kedua-dua kaedah memberikan hasil yang sama dan mematuhi piawaian ANSI SQL. Mereka juga agak mesra prestasi, tetapi prestasi sebenar akan berbeza-beza bergantung pada sistem pangkalan data, reka bentuk skema dan kehadiran indeks. Adalah disyorkan untuk menanda aras kedua-dua pendekatan untuk menentukan penyelesaian terbaik untuk senario tertentu.

Atas ialah kandungan terperinci Bagaimana cara memilih baris dengan nilai maksimum dalam lajur menggunakan SQL?. 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