Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengira Kiraan Bersyarat dalam SQL Server Tanpa COUNTIF?
Menguasai Pengiraan Kiraan Bersyarat dalam SQL Server tanpa COUNTIF
Mengira baris dengan cekap berdasarkan keadaan khusus dalam pertanyaan SQL, terutamanya apabila menggunakan klausa GROUP BY
, adalah penting untuk analisis data. Artikel ini menunjukkan cara mengira peratusan baris yang memenuhi kriteria tertentu—contohnya, mengira baris dengan nilai lajur bersamaan dengan 1—dalam SQL Server, di mana fungsi COUNTIF
khusus tidak tersedia.
Penyelesaian itu memanfaatkan kuasa SUM
dan CASE
pernyataan:
<code class="language-sql">SELECT SUM(CASE WHEN myColumn = 1 THEN 1 ELSE 0 END) FROM AD_CurrentView;</code>
Pertanyaan ini secara berkesan mengira kejadian di mana myColumn
bersamaan dengan 1. Pernyataan CASE
menetapkan 1 kepada baris yang memenuhi syarat dan 0 sebaliknya. SUM
kemudian jumlahkan nilai ini, memberikan kiraan bersyarat yang diingini.
Untuk mengendalikan nilai NULL
dengan anggun dan mengelakkan kemungkinan ralat atau hasil yang tidak tepat, gunakan pertanyaan yang diubah suai ini:
<code class="language-sql">SELECT SUM(CASE WHEN ISNULL(myColumn, 0) = 1 THEN 1 ELSE 0 END) FROM AD_CurrentView;</code>
Versi ini menganggap nilai NULL
sebagai 0, memastikan purata kiraan bersyarat yang tepat dalam MS SQL 2005 dan seterusnya, membolehkan analisis data yang lebih mantap.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Kiraan Bersyarat dalam SQL Server Tanpa COUNTIF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!