Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Nilai Maksimum untuk Setiap Kumpulan dalam Pangkalan Data SQL dengan Cekap?
Mengekstrak Nilai Maksimum untuk Setiap Kumpulan dalam SQL
Tugas SQL biasa melibatkan mendapatkan semula nilai maksimum untuk setiap kumpulan unik dalam jadual. Mari kita gambarkan ini dengan contoh jadual:
Name | Value | AnotherColumn |
---|---|---|
Pump 1 | 8000.0 | Something1 |
Pump 1 | 10000.0 | Something2 |
Pump 1 | 10000.0 | Something3 |
Pump 2 | 3043 | Something4 |
Pump 2 | 4594 | Something5 |
Pump 2 | 6165 | Something6 |
Matlamat kami adalah untuk mencari Value
tertinggi bagi setiap Name
(pam), menghasilkan keputusan ini:
Name | Value |
---|---|
Pump 1 | 10000.0 |
Pump 2 | 6165 |
Pendekatan naif menggunakan subkueri untuk mencari nilai maksimum bagi setiap nama selalunya membawa kepada entri pendua apabila berbilang baris berkongsi nilai maksimum yang sama:
<code class="language-sql">select a.name, value from out_pumptable as a, (select name, max(value) as value from out_pumptable group by name) g where a.name = g.name and g.value = a.value</code>
Walau bagaimanapun, penyelesaian yang lebih cekap dan ringkas menggunakan klausa GROUP BY
:
<code class="language-sql">select name, max(value) from out_pumptable group by name;</code>
Pertanyaan ini mengumpulkan baris berdasarkan lajur Name
dan kemudian memilih maksimum Value
dalam setiap kumpulan, dengan berkesan mengelakkan hasil pendua dan menyediakan output yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Nilai Maksimum untuk Setiap Kumpulan dalam Pangkalan Data SQL dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!