SQL: Kenal pasti rekod dengan nilai maksimum dalam setiap kumpulan
Andaikan terdapat jadual yang mengandungi tiga medan (nama, nilai tertinggi dan jumlah) dan data, dan tugasnya adalah untuk mendapatkan semula rekod dengan jumlah nilai tertinggi untuk setiap nama yang berbeza.
Penyelesaian:
Pertanyaan berikut mengembalikan hasil yang diingini:
<code class="language-sql">SELECT Name, Top, Total FROM sometable WHERE Total = (SELECT MAX(Total) FROM sometable i WHERE i.Name = sometable.Name);</code>
Alternatif:
Pendekatan lain ialah menggunakan subkueri untuk mencari jumlah nilai maksimum bagi setiap nama dan kemudian sertakan hasilnya dengan jadual asal untuk mendapatkan semula rekod yang sepadan:
<code class="language-sql">SELECT Name, Top, Total FROM sometable INNER JOIN ( SELECT MAX(Total) AS Total, Name FROM sometable GROUP BY Name ) AS max ON max.Name = sometable.Name AND max.Total = sometable.Total;</code>
Atas ialah kandungan terperinci Bagaimana untuk Mencari Rekod dengan Nilai Maksimum untuk Setiap Kumpulan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!