Pengiraan Peratusan Pelayan SQL: Tiga Pendekatan
Panduan ini menunjukkan tiga kaedah berkesan untuk mengira peratusan nilai dalam jadual SQL Server. Setiap kaedah mencapai hasil yang sama, menawarkan fleksibiliti bergantung pada pilihan anda dan struktur pangkalan data.
Kaedah 1: Kecekapan Fungsi Tetingkap
Pendekatan ini memanfaatkan OVER()
fungsi tetingkap untuk penyelesaian yang ringkas dan cekap:
<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / SUM(COUNT(*)) OVER() AS Percentage FROM MyTable GROUP BY Grade;</code>
Klausa OVER()
mengira jumlah kiraan merentas semua baris, memberikan asas langsung untuk pengiraan peratusan.
Kaedah 2: Pendekatan Universal
Kaedah yang lebih mudah, sesuai untuk pelbagai dialek SQL, melibatkan subkueri:
<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / (SELECT COUNT(*) FROM MyTable) AS Percentage FROM MyTable GROUP BY Grade;</code>
Ini membahagikan terus kiraan setiap gred dengan jumlah kiraan baris yang diperoleh daripada subkueri.
Kaedah 3: Ungkapan Jadual Biasa (CTE)
Untuk kebolehbacaan dan modulariti yang dipertingkatkan, CTE boleh digunakan:
<code class="language-sql">WITH GradeCounts AS ( SELECT Grade, COUNT(*) AS GradeCount FROM MyTable GROUP BY Grade ) SELECT Grade, GradeCount * 100.0 / (SELECT SUM(GradeCount) FROM GradeCounts) AS Percentage FROM GradeCounts;</code>
CTE mula-mula mengira kiraan untuk setiap gred, kemudian pertanyaan utama mengira peratusan menggunakan jumlah kiraan yang diperoleh daripada CTE.
Ketiga-tiga kaedah menghasilkan format output yang sama:
<code>Grade | Percentage ------------------ A | 5% B | 15% C | 40% D | 40%</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengira Peratusan Nilai dalam Jadual Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!