Pengiraan bersyarat dan klausa WHERE dalam SQL Server
Dalam SQL Server, anda boleh menggunakan COUNT()
fungsi agregat digabungkan dengan klausa WHERE
untuk mengira bilangan rekod yang memenuhi syarat tertentu.
Matlamat contoh berikut adalah untuk mengira bilangan rekod dengan nilai MyColumn
bersamaan dengan 1. Berikut ialah pertanyaan yang diubah suai:
<code class="language-sql">SELECT UID, COUNT(UID) AS TotalRecords, SUM(ContractDollars) AS ContractDollars, (SELECT COUNT(*) FROM dbo.AD_CurrentView AS Sub WHERE Sub.UID = Outer.UID AND Sub.MyColumn = 1) * 100.0 / COUNT(UID) AS PercentageOfOne FROM dbo.AD_CurrentView AS Outer GROUP BY UID HAVING SUM(ContractDollars) >= 500000</code>
Berikut ialah pecahan langkah pertanyaan:
MyColumn
= 1). UID
untuk menyertai pertanyaan utama dengan subkueri. MyColumn
bersamaan dengan 1 dengan membahagikan kiraan dalam subkueri dengan jumlah bilangan rekod untuk setiap UID. Ambil perhatian bahawa pembahagi 100
ditukar kepada 100.0
untuk memastikan pembahagian titik terapung dan mendapatkan hasil peratusan yang lebih tepat. PercentageOfOne
. Pertanyaan yang disemak ini mengelakkan potensi isu pembahagian integer dengan menggunakan 100.0
dan bukannya 100
dalam pengiraan peratusan, memastikan hasil titik terapung yang lebih tepat.
Atas ialah kandungan terperinci Bagaimana Mengira Rekod Memenuhi Syarat Tertentu dan Mengira Peratusan dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!