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
Lepaskan: 2024-12-28 19:58:10
asal
327 orang telah melayarinya

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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!

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