Rumah >pangkalan data >tutorial mysql >Bagaimana Mengira Rekod Memenuhi Syarat Tertentu dan Mengira Peratusan dalam SQL Server?

Bagaimana Mengira Rekod Memenuhi Syarat Tertentu dan Mengira Peratusan dalam SQL Server?

Patricia Arquette
Patricia Arquetteasal
2025-01-11 13:06:46975semak imbas

How to Count Records Meeting a Specific Condition and Calculate Percentage in SQL Server?

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:

  1. Buat subkueri untuk mengira bilangan rekod dalam setiap kumpulan UID yang memenuhi syarat (MyColumn = 1).
  2. Gunakan lajur UID untuk menyertai pertanyaan utama dengan subkueri.
  3. Kira peratusan rekod dengan 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.
  4. Gunakan peratusan yang dikira pada lajur 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!

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