DATA 분석 교육 과정 (2024.02~08)/SQL

SQL_GROUP BY, HAVING, ORDER BY

글로리아-89 2024. 2. 26. 21:01
728x90
1.GROUP BY 문법

 -  특정 컬럼(표현식)을 기준으로 튜플(행)을 그룹화(=묶어서)하여 각각 단일행으로 표기

 

 - 실제로 출력되는 튜플(행)이 감소되어 입력할 수 있는 컬럼이 제한됨. (HAVING , ORDER BY , SELECT 에서 제한)

   대신 집계함수(=다중행 함수)로 처리한 컬럼은 HAVING , ORDER BY , SELECT 에도 입력이 가능

2.집계함수의 종류 (COUNT() , AVG() , SUM() , MAX() , MIN())

    1) COUNT(expr)

- 그루핑할 컬럼 기준으로 행의 개수를 출력합니다.
- 다른 집계함수와 달리 * 을 expr에 쓸 수 있습니다.
모든 자료형에 이용가능 합니다.

   

   2) MAX(expr) , MIN(expr)

- 그룹 기준으로 입력한 expr 에 대해 최대값이나 최소값을 출력합니다.
NULL 데이터는 무시합니다. (모두 NULL 이면 NULL 출력) 

모든 자료형에 이용가능 합니다.

 

 

    3) AVG(expr)

 - 그룹 기준으로 입력한 expr 에 대해 평균값을 출력합니다.
 - NULL 데이터는 무시합니다. (모두 NULL 이면 NULL 출력)

 - 숫자형에만 이용가능 합니다.

    4) SUM(expr)

- 그룹 기준으로 입력한 expr 에 대해 합계값을 출력합니다.
- NULL 데이터는 무시합니다. (모두 NULL 이면 NULL 출력) 

- 숫자형에만 이용가능 합니다.

 

3.HAVING 문법

    - 집계가 완료된 대상을 필터링하는 문법

    - 집계함수에 대해 조건을 줄 수 있다. 

    - WHERE절에서는 집계함수를 사용할 수 없다.  (WHERE 절은 GROUP BY 보다 먼저 실행되기 때문)

7.ORDER BY 문법

   - 특정 컬럼을 기준으로 데이터를 오름차순/내림차순 정렬 (여러 컬럼 동시 사용 가능)

   - 예시1) TB_PRD 테이블을 PRD_AMT 기준으로 오름차순으로 정렬하여 아래와 같이 출력

SELECT PRD_ID

   ,  PRD_NAME

   ,  PRD_TYPE

   ,  PRD_AMT

FROM TB_PRD

ORDER BY PRD_AMT ;

 

   - 예시2) TB_PRD 테이블을 PRD_AMT 기준으로 내림차순으로 정렬하여 아래와 같이 출력

SELECT PRD_ID

   ,  PRD_NAME

   ,  PRD_TYPE

   ,  PRD_AMT

FROM TB_PRD

ORDER BY PRD_AMT DESC ;

 

   - 예시3) TB_PRD 테이블을 PRD_TYPE 별로 오름차순 정렬하되 , 같은 타입일 경우 PRD_AMT 순으로 내림차순으로 정렬하여 아래와 같이 출력

SELECT PRD_ID

   ,  PRD_NAME

   ,  PRD_TYPE

   ,  PRD_AMT

FROM TB_PRD

ORDER BY PRD_TYPE, PRD_AMT DESC ;

 

   - 컬럼이름 외에 AS 명칭이나 숫자로도 표현이 가능

 

728x90
반응형