>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 특정 조건을 충족하는 레코드 수를 계산하고 백분율을 계산하는 방법은 무엇입니까?

SQL Server에서 특정 조건을 충족하는 레코드 수를 계산하고 백분율을 계산하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-11 13:06:46925검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.