SQL Server の割合の計算: 3 つのアプローチ
このガイドでは、SQL Server テーブル内の値のパーセンテージを計算するための 3 つの効果的な方法を説明します。 どの方法でも同じ結果が得られ、好みやデータベース構造に応じた柔軟性が得られます。
方法 1: ウィンドウ関数の効率
このアプローチでは、OVER()
ウィンドウ関数を活用して、簡潔で効率的なソリューションを実現します。
<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / SUM(COUNT(*)) OVER() AS Percentage FROM MyTable GROUP BY Grade;</code>
OVER()
句は、すべての行の合計数を計算し、パーセント計算の直接の基礎となります。
方法 2: 普遍的なアプローチ
さまざまな SQL 言語に適した、より簡単な方法にはサブクエリが含まれます。
<code class="language-sql">SELECT Grade, COUNT(*) * 100.0 / (SELECT COUNT(*) FROM MyTable) AS Percentage FROM MyTable GROUP BY Grade;</code>
これは、各グレードの数をサブクエリから取得した合計行数で直接除算します。
方法 3: 共通テーブル式 (CTE)
可読性とモジュール性を向上させるために、CTE を使用できます。
<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 は最初に各グレードのカウントを計算し、次にメイン クエリが CTE から導出された合計カウントを使用してパーセンテージを計算します。
3 つの方法はすべて同じ出力形式を生成します:
<code>Grade | Percentage ------------------ A | 5% B | 15% C | 40% D | 40%</code>
以上がSQL Server テーブル内の値のパーセンテージを計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。