기록
SQL 집약함수 사용 시 중복값 제외 (DISTINCT) 본문
반응형
상품분류 레코드 중 중복을 제외한 값 종류의 수만 구하고 싶다면?
중복값을 제외하고 행 수를 계산하면 되는데, 이는 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 키워드를 사용한다.
반응형
'[Study] > Database' 카테고리의 다른 글
HAVING - 그룹에 조건을 지정한다 (0) | 2019.07.26 |
---|---|
database - GROUP BY (0) | 2019.07.26 |
SQL 집약함수 - SUM, AVG, MAX, MIN (0) | 2019.07.24 |
SQL 집약 함수 - COUNT (0) | 2019.07.24 |
database - AND연산자가 OR연산자보다 우선순위가 높음 (0) | 2019.07.24 |