Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengira Peratusan Nilai Padanan Antara Dua Lajur dalam Satu Penyata SQL SELECT?
Dalam konteks jadual 'my_obj', yang mengandungi dua medan integer ('value_a' dan 'value_b'), anda berusaha untuk menentukan peratusan keadaan di mana 'value_a' sama 'value_b'.
Untuk prestasi optimum dan kesederhanaan, pertimbangkan pertanyaan semakan berikut:
SELECT property_name ,(count(value_a = value_b OR NULL) * 100) / count(*) AS pct FROM my_obj GROUP BY 1;
Ini pendekatan memanfaatkan keupayaan 'count()' untuk mengabaikan nilai 'NULL', memastikan kedua-duanya lajur diambil kira. Dengan mendarabkan kiraan nilai padanan dengan 100 dan membahagikan dengan jumlah kiraan, peratusan dikira.
Jika digit pecahan dikehendaki dalam hasilnya, gunakan '100.0' dan bukannya '100' dalam pengiraan dan pertimbangkan untuk menggunakan 'round()':
SELECT property_name ,round((count(value_a = value_b OR NULL) * 100.0) / count(*), 2) AS pct FROM my_obj GROUP BY 1;
Versi yang disemak ini memastikan pengiraan kekal angka, mengekalkan nilai pecahan dan membolehkan ketepatan yang lebih tinggi dalam peratusan yang dilaporkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Peratusan Nilai Padanan Antara Dua Lajur dalam Satu Penyata SQL SELECT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!