首页 >数据库 >mysql教程 >如何在SQL Server中统计满足特定条件的记录并计算百分比?

如何在SQL Server中统计满足特定条件的记录并计算百分比?

Patricia Arquette
Patricia Arquette原创
2025-01-11 13:06:46975浏览

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. 创建一个子查询,用于统计每个 UID 组中满足条件 (MyColumn = 1) 的记录数。
  2. 使用 UID 列将主查询与子查询连接。
  3. 通过将子查询中的计数除以每个 UID 的记录总数来计算 MyColumn 等于 1 的记录的百分比。 注意,这里将除数 100 改为 100.0 以确保浮点型除法,得到更精确的百分比结果。
  4. 将计算出的百分比用于 PercentageOfOne 列。

This revised query avoids potential integer division issues by using 100.0 instead of 100 in the percentage calculation, ensuring a more accurate floating-point result.

以上是如何在SQL Server中统计满足特定条件的记录并计算百分比?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn