Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mendapatkan Berbilang Kiraan dengan Cekap daripada Satu Pertanyaan SQL?
Optimumkan reka bentuk pertanyaan: gunakan satu pernyataan SQL untuk mencapai berbilang kiraan
Dalam analisis data, selalunya perlu mendapatkan berbilang kiraan untuk keadaan berbeza dalam jadual. Walaupun pertanyaan mudah boleh mengembalikan satu kiraan, mendapatkan berbilang kiraan dalam satu pertanyaan memerlukan pendekatan yang lebih bernuansa.
Struktur pertanyaan:
Untuk ini, kita boleh menggunakan pernyataan CASE digabungkan dengan fungsi agregat. Kaedah ini menyerupai kefungsian fungsi PIVOT dalam beberapa sistem pangkalan data. Pertanyaan yang dijana dalam bentuk:
<code class="language-sql">SELECT distributor_id, COUNT(*) AS total, SUM(CASE WHEN level = 'exec' THEN 1 ELSE 0 END) AS ExecCount, SUM(CASE WHEN level = 'personal' THEN 1 ELSE 0 END) AS PersonalCount FROM yourtable GROUP BY distributor_id</code>
Arahan:
COUNT(*)
mengira jumlah bilangan baris untuk setiap distributor_id
. level
. Jika level
ialah 'exec', maka ExecCount
dinaikkan; jika level
ialah 'peribadi', maka PersonalCount
dinaikkan. GROUP BY
mengumpulkan hasil dengan distributor_id
, memastikan kiraan unik untuk setiap pengedar. Kelebihan kaedah ini:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Berbilang Kiraan dengan Cekap daripada Satu Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!