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
반응형
'공부는 평생하는 것이다 > SQL' 카테고리의 다른 글
ORA-01017 "invalid username/password; logon denied" (0) | 2024.10.25 |
---|---|
[오라클] SQL Loader (Field in data file exceeds maximum length) (0) | 2024.10.10 |
DW에서 STG와 ODS 영역에 대한 역할과 설명 (0) | 2024.06.27 |