ホームページ >データベース >mysql チュートリアル >COUNTIF を使用せずに SQL Server で条件付きカウントを実行するにはどうすればよいですか?
SQL Server の条件付きカウント: CASE ベースのアプローチ
集計関数は SQL Server でのデータ分析に不可欠です。 COUNT
は合計行数を提供しますが、条件付きカウントには別の戦略が必要です。 SQL Server には直接相当する COUNTIF
がありませんが、SUM
と CASE
を使用して同じ結果を得ることができます。
MyColumn
が '1' に等しい行のパーセンテージを計算する必要があると想像してください。 単純な試みは次のようになります:
<code class="language-sql">SELECT UID, COUNT(UID) AS TotalRecords, SUM(ContractDollars) AS ContractDollars, (COUNTIF(MyColumn, 1) / COUNT(UID) * 100) -- Incorrect: COUNTIF not supported FROM dbo.AD_CurrentView GROUP BY UID HAVING SUM(ContractDollars) >= 500000</code>
COUNTIF
関数は、標準の SQL Server 関数ではありません。 解決策は、SUM
と CASE
を活用することです:
<code class="language-sql">SELECT UID, COUNT(UID) AS TotalRecords, SUM(ContractDollars) AS ContractDollars, (SUM(CASE WHEN MyColumn = 1 THEN 1 ELSE 0 END) / COUNT(UID) * 100) -- Correct conditional count FROM dbo.AD_CurrentView GROUP BY UID HAVING SUM(ContractDollars) >= 500000</code>
CASE
ステートメントは各行の MyColumn
をチェックします。 「1」の場合は 1 を返します。それ以外の場合は 0 を返します。SUM
はこれらの 1 と 0 を合計し、MyColumn
内の '1' の出現を効果的にカウントします。これにより、正確な条件付きカウントが提供され、正確な計算と洞察力に富んだデータ分析が可能になります。
以上がCOUNTIF を使用せずに SQL Server で条件付きカウントを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。