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