SQL Server の条件付きカウントと WHERE 句
SQL Server では、COUNT()
集計関数を WHERE
句と組み合わせて使用して、特定の条件を満たすレコードの数をカウントできます。
次の例の目的は、MyColumn
値が 1 に等しいレコードの数をカウントすることです。変更されたクエリは次のとおりです:
<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>
クエリ手順の内訳は次のとおりです:
MyColumn
= 1) を満たす各 UID グループ内のレコードの数をカウントするサブクエリを作成します。 UID
列を使用して、メインクエリをサブクエリと結合します。 MyColumn
が 1 に等しいレコードの割合を計算します。 浮動小数点除算を確実にし、より正確なパーセンテージの結果を得るために、除数 100
が 100.0
に変更されていることに注意してください。 PercentageOfOne
列に適用します。 この改訂されたクエリでは、パーセント計算で 100.0
の代わりに 100
を使用することで潜在的な整数の除算の問題を回避し、より正確な浮動小数点の結果を保証します。
以上がSQL Serverで特定の条件を満たすレコードをカウントし、パーセンテージを計算する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。