> 집계함수
- 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다.
- SELECT 절, HAVING 절, ORDER BY 절에 사용할 수 있다.
- 테이블 전체 집계를 위해 GROUP BY 절 없이도 집계 함수를 사용할 수 있다.
- 집계 함수는 그룹에 대한 정보를 제공하므로 주로 숫자 유형에 사용되지만, MAX MIN COUNT 함수는 문자, 날자 유형에도 적용이 가능한 함수이다.
집계 함수명([DISTINCT | ALL)] 칼럼이나 표현식) | - ALL : Default 옵션으로 생략 가능 - DISTINCT : 같은 값을 하나의 데이터로 간주할 때 사용 |
> GROUP BY 절, HAVING 절
- SQL문에서 FROM절과 WHERE 절 뒤에 오며 GROUP BY절은 행들을 소그룹화 한다.
- 데이터들을 작은 그룹으로 분류하여 소그룹에 대한 항목별로 통계 정보를 얻을 때 추가로 사용된다.
- GROUP BY 절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수를 사용한다.
- GROUP BY 절에서는 SELECT 절과는 달리 칼럼 ALIAS 명을 사용할 수 없다.
- WHERE 절은 전체 데이터를 GROUP으로 나누기 전에 행들을 미리 제거 시킨다
- GROUP BY절과 HAVING 절의 순서를 바꾸더라도 문법 에러가 없고 결과물도 동일한 결과를 출력한다. 그렇지만 논리적으로 GROUP BY 절과 HAVING 절의 순서를 지키는 것을 권고
- 집계 함수의 통계 정보는 NULL값을 가진 행을 제외하고 수행
- 집계 함수는 WHERE 절에는 올 수 없다.
- GROUP BY 절에 의한 소그룹별로 만들어진 집계 데이터 중, HAVING 절에서 제한 조건을 두어 조건을 만족하는 내용만 출력
> HAVING 절
- HAVING 절은 WHERE 절과 비슷하지만 GROUP BY 절에 의해 만들어진 소그룹에 대한 조건이 적용된다는 점에서 차이가 있다.
- HAVING 절은 SELECT 절에 사용되지 않는 칼럼이나 집계 함수가 아니더라도 GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다.
- HAVING 절은 GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다.
> ORDER BY 절
- ORDER BY 절은 SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 칼럼을 기준으로 정렬하여 출력하는데 사용
- ORDER BY 절에 칼럼명 대신에 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능하다. SELECT 절의 칼럼명이 같거나 정렬 조건이 많을 경우 편리하게 사용할 수 있으나, 향후 유지보수성이나 가독성이 떨어지므로 가능한 칼럼명이나 ALIAS 명을 권고
- 별도로 정렬 방식을 지정하지 않으면 기본적으로 오름차순이 적용되며 SQL 문장의 제일 마지막에 위치한다
출처 : 한국데이터산업진흥원 게시자료