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>
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>
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>
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!