기록

SQL 집약함수 사용 시 중복값 제외 (DISTINCT) 본문

[Study]/Database

SQL 집약함수 사용 시 중복값 제외 (DISTINCT)

Dannnnnn 2019. 7. 24. 18:03
반응형

상품분류 레코드 중 중복을 제외한 값 종류의 수만 구하고 싶다면?

 

중복값을 제외하고 행 수를 계산하면 되는데, 이는 DISTINCT 키워드를 COUNT함수의 인수로 사용하면 된다.

 

SELECT COUNT(DISTINCT goods_classify) FROM Goods; /* 결과 3 */

 

이 때 DISTINCT는 반드시 괄호 안에 기술해야 한다.

먼저 goods_classify 열의 중복값을 제외한 후에 행 수를 계산하고 있기 때문이다.

 

DISTINCT는 COUNT 함수 뿐만 아니라 집약함수라면 어디든지 사용할 수 있다.

 

SELECT SUM(sell_price), SUM(DISTINCT sell_price) From Goods

 

오른쪽 합계가 왼쪽 합계보다 500원이 더 적은 결과가 나오는데,

이것은 판매가격이 500원인 상품이 두 행 존재하기 때문에 중복 행은 제외하고 한 행만 남기 때문이다.

 

 

값의 종류를 세고 싶을 때는 COUNT 함수의 인수에 DISTINCT를 사용하면 된다.

중복값을 제외하고 집약하려면 집약 함수의 인수에 DISTINCT 키워드를 사용한다.

반응형