중첩 집계와 DISTINCT
SQL에서는 DISTINCT
와 집계 함수를 함께 사용할 수 있고, 고급 요약과 비교를 위해 중첩 쿼리(서브쿼리)도 사용할 수 있습니다.
집계 함수와 DISTINCT
COUNT()
나 AVG()
같은 함수 안에서 DISTINCT
를 사용하면 중복을 제거할 수 있습니다.
지역별 고유 고객 수 세기
SELECT COUNT(DISTINCT client_id)
FROM client_orders;
COUNT(DISTINCT 고객_id)
는 주문을 한 고유 고객의 수를 반환합니다.
아래는 AVG()
와 DISTINCT
를 함께 사용하는 예시입니다.
고유한 주문 금액의 평균
SELECT AVG(DISTINCT order_total)
FROM client_orders;
AVG(DISTINCT 주문_총액)
는 중복되는 금액을 제외한 고유한 주문 금액만으로 평균을 계산합니다.
AVG(DISTINCT column)
은AVG(column)
과 동일하지 않습니다. 전자는 중복 값을 제외합니다.
DISTINCT와 UNIQUE의 차이는 무엇인가요?
DISTINCT
와 UNIQUE
는 거의 동일합니다. 둘 다 결과 집합에서 중복을 제거합니다.
주요 차이점은 다음과 같습니다.
SELECT
에서:DISTINCT
가 SQL 표준입니다.UNIQUE
는 일부 시스템에서만 지원되는 비표준 동의어입니다.CREATE TABLE
에서:UNIQUE
만 유효합니다. 이는 쿼리 수식어가 아니라 제약조건이기 때문입니다.