본문 바로가기
공부는 평생하는 것이다/SQL

[IT] Distinct와 Count 함께 사용하는 방법

by IT Daily Life 2023. 7. 3.
728x90
반응형

distinct 를 사용하면 중복을 제거할 수 있습니다. 
count를 사용하면 컬럼 수 또는 row수를 조회할 수 있습니다. 
 
distinct는 여러 컬럼을 중복제거 할 수 있습니다. 

-- DISTINCT를 이용한 여러 컬럼 중복제거
SELECT DISTINCT COL1, COL2 FROM TBL;

 
distinct를 사용하여 중복을 제거한 후에 count를 사용하여 개수를 확인해야 하는 경우가 있습니다. 

-- 에러 발생
SELECT COUNT( DISTINCT COL1, COL2) FROM TBL;

-- 에러 발생
SELECT COUNT ( DISTINCT(COL1, COL2)) FROM TBL;

 
콤마로 인하여 COUNT() 함수의 인자 수가 안 맞는 상황이 발생합니다.
단순히 COL1, COL2 컬럼만 조회하는 경우라면 GROUP BY 와 COUNT를 같이 사용하면 해결할 수 있겠지만
다른 컬럼들에 의해서 제약이 생긴다면 다른 방법을 찾아야 합니다. 

-- SUM(COL3)로 인해서 GROUP BY 를 사용하기 어렵다.
SELECT COUNT(DISTINCT(COL1, COL2)) C1
       , SUM(COL3) AS C2
  FROM TBL;

 
이런 경우 아래와 같이 하면 문제를 해결할 수 있습니다.
||를 이용하여 두개의 컬럼을 하나로 만들면 문제가 해결됩니다.

-- ||이용하여 컬럼을 하나로 만들면 문제가 해결된다.
SELECT COUNT(DISTINCT(COL1||COL2)) C1
       , SUM(COL3) AS C2
  FROM TBL;

 

728x90
반응형