codememo

SQL Server의 조건을 기준으로 카운트

tipmemo 2023. 7. 2. 20:46
반응형

SQL Server의 조건을 기준으로 카운트

SQL Server에서 조건에 따라 카운트하는 방법을 아는 사람이 있습니까?

예:

이름이 'system'인 레코드와 전체 케이스의 열 카운트를 수행하려면 어떻게 해야 합니까?표에 있는 신분증이요?

고객 테이블

UserID     CaseID     Name
1          100        alan
1          101        alan
1          102        amy
1          103        system
1          104        ken
1          105        ken
1          106        system  

결과는 다음과 같이 표시됩니다.

UserID    TotalCaseID    TotalRecordsWithSystem
1         7              2

SUM/CASE 사용...

SELECT
    COUNT(*),  --total
    SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) --conditional
FROM
    myTable

그는 결과에 사용자 ID를 원한 것 같습니다.

SELECT 
    userid,
    COUNT(*) as TotalcaseID, --total 
    SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) as TotalRecordsWithSystem  
FROM 
    myTable 
group by userid
select
userid,
count('x') as TotalCaseID,
count(case when name = 'system' then 'x' else null end) as TotalRecordsWithSystem
from CustomerTable
group by userid

SQL Server 2012+를 사용하는 경우SUM/IIF

SELECT
    COUNT(*) AS Total,
    SUM(IIF(Name = 'system', 1, 0)) AS SystemTotal
FROM
    CustomerTable

언급URL : https://stackoverflow.com/questions/3455201/count-based-on-condition-in-sql-server

반응형