Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Pengiraan Bersyarat dalam SQL Server Tanpa COUNTIF?
Pengiraan Bersyarat Pelayan SQL: Pendekatan Berasaskan KES
Fungsi agregat adalah penting untuk analisis data dalam SQL Server. Walaupun COUNT
memberikan jumlah kiraan baris, pengiraan bersyarat memerlukan strategi yang berbeza. SQL Server tidak mempunyai persamaan COUNTIF
langsung, tetapi kita boleh mencapai hasil yang sama menggunakan SUM
dan CASE
.
Bayangkan anda perlu mengira peratusan baris dengan MyColumn
sama dengan '1'. Percubaan naif mungkin kelihatan seperti ini:
<code class="language-sql">SELECT UID, COUNT(UID) AS TotalRecords, SUM(ContractDollars) AS ContractDollars, (COUNTIF(MyColumn, 1) / COUNT(UID) * 100) -- Incorrect: COUNTIF not supported FROM dbo.AD_CurrentView GROUP BY UID HAVING SUM(ContractDollars) >= 500000</code>
Fungsi COUNTIF
bukan fungsi SQL Server standard. Penyelesaiannya terletak pada memanfaatkan SUM
dan CASE
:
<code class="language-sql">SELECT UID, COUNT(UID) AS TotalRecords, SUM(ContractDollars) AS ContractDollars, (SUM(CASE WHEN MyColumn = 1 THEN 1 ELSE 0 END) / COUNT(UID) * 100) -- Correct conditional count FROM dbo.AD_CurrentView GROUP BY UID HAVING SUM(ContractDollars) >= 500000</code>
Pernyataan CASE
menyemak MyColumn
setiap baris. Jika '1', ia mengembalikan 1; jika tidak, ia mengembalikan 0. SUM
kemudian menjumlahkan 1 dan 0 ini, dengan berkesan mengira kejadian '1' dalam MyColumn
. Ini memberikan kiraan bersyarat yang tepat, membolehkan pengiraan tepat dan analisis data yang berwawasan.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Pengiraan Bersyarat dalam SQL Server Tanpa COUNTIF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!