본문 바로가기

프로그래밍/MSSQL

[MSSQL] GROUP BY 없이 컬럼과 함께 COUNT를 조회해보자 (COUNT OVER)

반응형

 

 

 

GROUP BY 없이 컬럼값들과 함께 COUNT결과를 출력해보자

 

 

일반적으로 COUNT 함수를 사용할 때, COUNT와 함께 컬럼 값을 조회하려면

그 컬럼명들을 GROUP BY뒤에 지정해줘야한다.

 

SELECT COL1, COl2, COL3, COUNT(*)
FROM 테이블명
GROUP BY COL1, COL2, COL3

 

 

 

만약, GROUP BY 없이 아래와 같이 쿼리를 작성한다면, 오류 메세지를 반환하게 된다.

 

SELECT COL1, COUNT(*)
FROM 테이블명

 

메시지 8120, 수준 16, 상태 1, 줄 1

열 '테이블명.COL1'이(가) 집계 함수나 GROUP BY 절에 없으므로 SELECT 목록에서 사용할 수 없습니다.

 

 

 

자, 그렇다면 GROUP BY 없이 컬럼값들과 함께 전체 COUNT를 출력하려면 어떻게 해야 할까?

 

COUNT() OVER (PARTITION BY 1)를 사용하면 된다.

 

SELECT *, COUNT(*) OVER(PARTITION BY 1)
FROM 테이블명

 

 

 

 

[MSSQL] COUNT CASE (조건 카운트) COUNT DISTINCT (중복제거 카운트)
[MSSQL] PARTITION 테이블 분할 함수

 

 

반응형