Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Baris dengan Nilai Minimum untuk Setiap Pengecam Unik dalam SQL?
Penapisan cekap SQL: dapatkan baris nilai minimum untuk setiap pengecam unik
Dalam pengurusan pangkalan data, selalunya perlu untuk mengekstrak rekod dengan nilai unik dan nilai minimum yang sepadan. Katakan terdapat jadual yang mengandungi lajur pengecam unik dan lajur nilai yang berkaitan, dan matlamatnya adalah untuk mendapatkan semula baris yang sepadan dengan nilai minimum daripada setiap pengecam unik.
Cabaran
Pertimbangkan borang berikut:
id | game | point |
---|---|---|
1 | x | 5 |
1 | z | 4 |
2 | y | 6 |
3 | x | 2 |
3 | y | 5 |
3 | z | 8 |
Matlamatnya adalah untuk mencari baris dengan nilai game
terkecil untuk setiap nilai point
unik. Output yang dijangkakan adalah seperti berikut:
id | game | point |
---|---|---|
1 | z | 4 |
2 | y | 6 |
3 | x | 2 |
Penyelesaian
Ini boleh dicapai menggunakan pertanyaan SQL berikut:
<code class="language-sql">SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT Id, MIN(Point) AS MinPoint FROM TableName GROUP BY Id ) tbl1 ON tbl1.id = tbl.id WHERE tbl1.MinPoint = tbl.Point;</code>
Penjelasan
Id
minimum untuk setiap Point
unik dan menyimpan hasil dalam jadual terbitan tbl1
. Id
dengan TableName
berdasarkan lajur tbl1
biasa. Point
terkecil (daripada tbl1
) sepadan dengan nilai Point
dalam jadual asal. Dengan menggunakan pertanyaan ini, anda boleh mendapatkan semula baris unik dengan nilai game
terkecil yang dikumpulkan mengikut lajur Point
.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Baris dengan Nilai Minimum untuk Setiap Pengecam Unik dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!