> 데이터 베이스 > MySQL 튜토리얼 > COUNTIF 없이 SQL Server에서 조건부 계산을 수행하는 방법은 무엇입니까?

COUNTIF 없이 SQL Server에서 조건부 계산을 수행하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-11 12:56:47
원래의
791명이 탐색했습니다.

How to Perform Conditional Counting in SQL Server Without COUNTIF?

SQL Server 조건부 계산: CASE 기반 접근 방식

SQL Server의 데이터 분석에는 집계 함수가 필수적입니다. COUNT은 총 행 수를 제공하지만 조건부 계산에는 다른 전략이 필요합니다. SQL Server에는 직접적으로 동등한 COUNTIF 기능이 없지만 SUMCASE을 사용하면 동일한 결과를 얻을 수 있습니다.

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 함수가 아닙니다. 해결책은 SUMCASE:

를 활용하는 데 있습니다.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿