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

Bagaimana untuk memilih hanya baris dengan nilai maksimum dalam lajur SQL?

Linda Hamilton
Lepaskan: 2025-01-25 21:07:10
asal
876 orang telah melayarinya

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

SQL: Pilih baris dengan nilai maksimum dalam lajur

Pertimbangkan jadual dokumen ringkas dengan id lajur, ulasan dan kandungan. Untuk menapis jadual dan mendapatkan semula baris yang mengandungi nilai rev maksimum bagi setiap id, anda boleh menggunakan fungsi SQL MAX() dan GROUP BY.

Gunakan GROUP BY untuk mengekstrak nilai maksimum

<code class="language-sql">SELECT id, MAX(rev)
FROM YourTable
GROUP BY id;</code>
Salin selepas log masuk

Walau bagaimanapun, untuk mendapatkan keseluruhan baris data yang mengandungi nilai rev maksimum bagi setiap id, anda boleh melakukan dua perkara:

Kaedah 1: Sertai dengan subkueri maksimum

<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: Gunakan syarat sendiri untuk menyertai kiri

<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

Kedua-dua kaedah menggunakan cantuman kiri dan syarat penapis untuk mendapatkan hanya baris dengan nilai rev terbesar bagi setiap id. Kaedah kedua meninggalkan-menyertai jadual kepada dirinya sendiri, menggunakan syarat cantum untuk mengecualikan baris pendua dengan nilai putaran terbesar.

Nota Prestasi

Prestasi kaedah ini mungkin berbeza-beza berdasarkan faktor seperti jenis pangkalan data, saiz jadual dan penggunaan indeks. Adalah disyorkan untuk menanda aras kedua-dua pendekatan untuk menentukan penyelesaian terbaik untuk senario khusus anda.

Atas ialah kandungan terperinci Bagaimana untuk memilih hanya baris dengan nilai maksimum dalam lajur 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