Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengira Peratusan Nilai Padanan Antara Dua Lajur dalam Satu Penyata SQL SELECT?

Bagaimana untuk Mengira Peratusan Nilai Padanan Antara Dua Lajur dalam Satu Penyata SQL SELECT?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-28 19:58:10307semak imbas

How to Calculate the Percentage of Matching Values Between Two Columns in a Single SQL SELECT Statement?

Mengkomputerkan Peratusan daripada SUM() Dalam Satu Pernyataan SELECT Tunggal dalam SQL

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'.

Kaedah Mudah dan Cekap

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.

Termasuk Digit Pecahan

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!

Kenyataan:
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