DISTINCT 절과 GROUP BY 절 모두 테이블 SELECT 시, 조회 결과를 그룹으로 묶어서 그 결과를 가져오는 역활을 한다.
두 구절은 모두 그룹을 지어준다는 공통점이 있지만, 정렬의 유무에서 차이가 있다.
DISTINCT는 결과물을 정렬하지 않고, GROUP BY는 결과물을 정렬해서 표현한다!
따라서,
조회 결과를 그룹으로 묶어서 결과를 가져올 때
정렬이 필요한 경우는 GROUP BY를,
정렬이 필요하지 않는 경우에는 DISTINCT절을 사용하면 된다.
문법 :
--GROUP BY
SELECT 칼럼 FROM 테이블 GROUP BY 칼럼명
--DISTINCT
SELECT DISTINCT 칼럼명 FROM 테이블명
예제 : 테이블(MY_TABLE)에 나이(AGE)로 그룹을 지어 조회
--GROUP BY
SELECT AGE FROM MY_TABLE GROUP BY AGE
--DISTINCT
SELECT DISTINCT AGE FROM MY_TABLE
DISTINCT : 데이터 조회 시, 중복된 내용은 제거하여 조회
예제 : 문자열 이름에서 성씨 성만 조회하시오 (단, 데이터의 중복된 값은 제거)
SELECT DISTINCT SUBSTR(NAME, 0, 1), NAME FROM MEMBER
SUBSTR : 주어진 문자열에서 특정 길이의 문자만 추출(추출할 자릿수)
SUBSTRB : 주어진 문자열에서 추출할 바이트 수를 지정
(substr에 대한 다른 글 https://gent.tistory.com/201)
반응형
'Web programming > SQL & DB' 카테고리의 다른 글
SQL 페이징 (0) | 2020.04.16 |
---|---|
집합 연산자로 데이터 레코드를 합하여 출력 (UNION, UNION ALL, INTERSECT, MINUS) (0) | 2020.04.16 |
ROWNUM / OUDER BY / 순위를 반환하는 함수 ROW_NUMBER, RANK, DENSE_RANK (0) | 2020.04.13 |
서브쿼리와 서브쿼리의 중첩 / 쿼리문 작성 및 실행 순서 (0) | 2020.04.13 |
관계 연산자, 패턴 연산자, 정규 표현식 (0) | 2020.04.10 |