[SQL] SQL Server의 조건에 따라 카운트
SQLSQL Server의 조건에 따라 카운트
나는 조건에 따라 SQL 서버의 수를 할 수있는 방법을 사람의 노하우를 않습니다.
예:
어떻게 테이블의 이름을 '시스템', 총 CaseID 기록 레코드에 대한 열 수를 할 수 있습니까?
고객 테이블
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
해결법
-
==============================
1.사용 SUM / CASE ...
사용 SUM / CASE ...
SELECT COUNT(*), --total SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) --conditional FROM myTable
-
==============================
2.나는 그가 결과에 사용자 ID를 원 생각
나는 그가 결과에 사용자 ID를 원 생각
SELECT userid, COUNT(*) as TotalcaseID, --total SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) as TotalRecordsWithSystem FROM myTable group by userid
-
==============================
3.
select userid, count('x') as TotalCaseID, count(case when name = 'system' then 'x' else null end) as TotalRecordsWithSystem from CustomerTable group by userid
from https://stackoverflow.com/questions/3455201/count-based-on-condition-in-sql-server by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떤 "특별한"문자는 SQL 서버 VARCHAR 필드에 사용할 수 있습니다? [닫은] (0) | 2020.04.26 |
---|---|
[SQL] 하나 개의 결과 집합의 열에 CONCATENATE 두 개의 데이터베이스 열 (0) | 2020.04.25 |
[SQL] SQL 쿼리의 새로운 라인 (0) | 2020.04.25 |
[SQL] 보기의 선택은 FROM 절에 하위 쿼리를 포함 (0) | 2020.04.25 |
[SQL] 최대 값 테이블을 조인 만 행을 선택 (0) | 2020.04.25 |