ホームページ > データベース > mysql チュートリアル > SQL Serverで特定の条件を満たすレコードをカウントし、パーセンテージを計算する方法は?

SQL Serverで特定の条件を満たすレコードをカウントし、パーセンテージを計算する方法は?

Patricia Arquette
リリース: 2025-01-11 13:06:46
オリジナル
974 人が閲覧しました

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

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>
ログイン後にコピー

クエリ手順の内訳は次のとおりです:

  1. 条件 (MyColumn = 1) を満たす各 UID グループ内のレコードの数をカウントするサブクエリを作成します。
  2. UID 列を使用して、メインクエリをサブクエリと結合します。
  3. サブクエリ内のカウントを各 UID のレコードの合計数で割ることにより、MyColumn が 1 に等しいレコードの割合を計算します。 浮動小数点除算を確実にし、より正確なパーセンテージの結果を得るために、除数 100100.0 に変更されていることに注意してください。
  4. 計算されたパーセンテージを PercentageOfOne 列に適用します。

この改訂されたクエリでは、パーセント計算で 100.0 の代わりに 100 を使用することで潜在的な整数の除算の問題を回避し、より正確な浮動小数点の結果を保証します。

以上がSQL Serverで特定の条件を満たすレコードをカウントし、パーセンテージを計算する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート