Rumah > pangkalan data > tutorial mysql > Bagaimana Mencari Nilai Minimum Merentasi Berbilang Lajur dalam Jadual dengan Cekap?

Bagaimana Mencari Nilai Minimum Merentasi Berbilang Lajur dalam Jadual dengan Cekap?

Barbara Streisand
Lepaskan: 2025-01-10 06:07:40
asal
606 orang telah melayarinya

How to Efficiently Find the Minimum Value Across Multiple Columns in a Table?

Pilih nilai minimum dengan cekap daripada berbilang lajur

Dalam jadual dengan berbilang lajur, selalunya perlu mendapatkan nilai minimum dalam lajur ini untuk setiap baris. Ini boleh dicapai dalam pelbagai cara.

Kaedah KES/BILA

Jika bilangan lajur yang akan diproses adalah kecil, pernyataan CASE/WHEN menyediakan penyelesaian yang mudah dan cekap. Dengan menilai setiap lajur dan memilih nilai minimum sebagai lajur TheMin anda boleh mendapatkan hasil yang diingini. Berikut ialah contoh:

<code class="language-sql">SELECT Id,
       CASE 
           WHEN Col1 < Col2 AND Col1 < Col3 THEN Col1
           WHEN Col2 < Col1 AND Col2 < Col3 THEN Col2
           ELSE Col3
       END AS TheMin
FROM   YourTableNameHere</code>
Salin selepas log masuk

Kaedah ini mudah dan mudah serta sesuai untuk situasi di mana bilangan lajur adalah terhad.

Fungsi PALING KURANG

Untuk senario yang lebih kompleks yang melibatkan berbilang lajur, fungsi LEAST menyediakan penyelesaian yang mudah:

<code class="language-sql">SELECT Id,
       LEAST(Col1, Col2, Col3) AS TheMin
FROM   YourTableNameHere</code>
Salin selepas log masuk

Fungsi LEAST menilai semua lajur yang ditentukan dan mengembalikan nilai minimum antara lajur tersebut. Pendekatan ini menghapuskan keperluan untuk pernyataan bersyarat yang kompleks dan menyediakan penyelesaian yang ringkas.

Fungsi ROW_NUMBER

Fungsi ROW_NUMBER boleh digunakan apabila memproses sejumlah besar lajur atau apabila pemprosesan tambahan diperlukan. Dengan mengisih baris berdasarkan nilai terkecil, anda boleh memilih baris kedudukan tertinggi dengan mudah menggunakan subkueri:

<code class="language-sql">SELECT Id,
       TheMin
FROM   (
            SELECT Id,
                   Col1, Col2, Col3,
                   ROW_NUMBER() OVER (PARTITION BY Id ORDER BY LEAST(Col1, Col2, Col3)) AS RowNum
            FROM   YourTableNameHere
       ) AS Subquery
WHERE  RowNum = 1</code>
Salin selepas log masuk

Pendekatan ini memberikan fleksibiliti, membolehkan operasi yang lebih kompleks seperti menapis atau mengumpulkan data dilakukan sebelum mendapatkan nilai minimum.

Ringkasan

Cara terbaik untuk memilih nilai minimum antara berbilang lajur bergantung pada keperluan khusus senario. Untuk senario mudah dengan bilangan lajur yang terhad, pernyataan CASE/WHEN menyediakan penyelesaian yang mudah. Untuk senario yang lebih kompleks atau apabila berurusan dengan sejumlah besar lajur, fungsi LEAST atau fungsi ROW_NUMBER menyediakan pilihan yang lebih maju dengan prestasi dan fleksibiliti yang lebih baik.

Atas ialah kandungan terperinci Bagaimana Mencari Nilai Minimum Merentasi Berbilang Lajur dalam Jadual dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan