Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mencari baris dengan nilai lajur maksimum, dibahagikan dengan lajur lain di MySQL?
Kumpulan MySQL mengikut lajur lain untuk mencari baris dengan nilai lajur terbesar
Dalam pangkalan data, mencari baris dengan nilai terbesar yang dikumpulkan oleh lajur lain ialah tugas analisis biasa. Dalam MySQL, ini boleh dicapai dengan menggabungkan pengagregatan dan penapisan.
Artikel ini meneroka masalah mendapatkan semula baris daripada jadual yang mengandungi nilai maksimum lajur tertentu dalam setiap kumpulan yang ditakrifkan oleh lajur lain. Contohnya, dalam jadual "Sepuluh Teratas" yang disediakan, tugasnya adalah untuk mengekstrak baris bagi setiap nilai "rumah" unik dan nilai maksimum yang sepadan bagi lajur "masa tarikh".
Pertanyaan percubaan pada mulanya adalah seperti berikut, tetapi ia adalah cacat:
<code class="language-sql">SELECT s1.id, s1.home, s1.datetime, s1.player, s1.resource FROM TopTen s1 JOIN (SELECT id, MAX(`datetime`) AS dt FROM TopTen GROUP BY id) AS s2 ON s1.id = s2.id ORDER BY `datetime`</code>
Pertanyaan tidak mengenal pasti nilai "masa tarikh" maksimum untuk setiap "rumah". Untuk menyelesaikan masalah dengan betul, kedua-dua "rumah" dan "masa tarikh" perlu dikumpulkan dalam subkueri:
<code class="language-sql">SELECT tt.* FROM topten tt INNER JOIN (SELECT home, MAX(datetime) AS MaxDateTime FROM topten GROUP BY home) groupedtt ON tt.home = groupedtt.home AND tt.datetime = groupedtt.MaxDateTime</code>
Pertanyaan akhir ini berjaya mengenal pasti setiap baris dengan nilai "rumah" berbeza yang mengandungi nilai maksimum lajur "masa tarikh"nya, menghasilkan hasil yang dijangkakan:
id | home | datetime | player | resource |
---|---|---|---|---|
1 | 10 | 04/03/2009 | john | 399 |
2 | 11 | 04/03/2009 | juliet | 244 |
5 | 12 | 04/03/2009 | borat | 555 |
8 | 13 | 01/01/2009 | borat | 700 |
Atas ialah kandungan terperinci Bagaimana untuk mencari baris dengan nilai lajur maksimum, dibahagikan dengan lajur lain di MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!