ORDER BY
검색된 데이터를 순차적으로 정렬해서 보여주는 함수
SELECT
FROM
WHERE
ORDER BY 기준1 [ASC/DESC]
DESC - 내림차수(내려가면서 작아진다)
ASC - 오름 차수(내려가면서 커진다.)
연봉순으로 내림차수로 결과를 보여준다.
이건 DEPT_ID 순으로 내림차수를 한데 그냥 출력하면 NULL이 제일 위에 뜬다.
이걸 내리기 위에 DESC에 NULLS LAST을 넣어준다.
이건 NULL을 제일 마지막에 출력한다는 옵션이다.
반대로 NULLS FIRST 도 있다.
그리고 oreder by 는 인덱스나 AS 로 정의한 별칭으로도 가능하다.
GROUP BY
데이터 들을 그룹으로 묶어주는 함수
SELECT
FROM
WHERE
GROUP BY column_name | expr
첫번째 쿼리는 DEPT_ID 라는 부서 번호로 그룹을 묶었다. GROUP BY 를 쓸때 주의 할 점은
그룹으로 묶여있는 것을 출력 할때는 다른 것들도 그룹으로 묶여서 출력 할수 있게끔 해야한다.
왜냐하면 이미 묶어서 출력을 하기 때문에 다른 것들이 묶여서 보여지지 않고 개별로 나온다면 에러가나기 떄문이다.
SUM - 총합 계산
AVG - 평균 계산
MIN - 최소값 반환
MAX - 최대값 반환
COUNT - Result Set 전체 행 수 반환
이것들은 컬럼에 대한 값을 묶어서 출력해주는 간단한 함수이다. 이런 식으로 GROUP BY 절로 묶은 컬럼과
GROUP BY 는 ORDER BY 처럼 인덱스나 별칭으로 사용 할 수 없다.
ROLLUP 중간중간에 대한 소계를 넣어준다.
HAVING 절
그룹에 대한 제한을 하기 위해 사용한다.
GROUP BY 에 대한 조건을 걸기 위해 HAVING을 사용한다.
HAVING은 그룹에 대한 조건이고
WHERE는 테이블에 대한 조건이다.
SELECT
FROM
GROUP BY
HAVING
SELECT 부분에 보면 SELECT 의 SUM 에대한 조건은 HAVING 절에 들어간다.
WHERE에 그룹의 조건을 넣어주면 에러가 난다.
'Base > Database' 카테고리의 다른 글
[Database] Self JOIN 사용법 (ANSI 표준) (0) | 2020.07.17 |
---|---|
[Database] INNER JOIN / OUTER JOIN 함수 사용법 및 차이(ORACLE & ANSI표준) (0) | 2020.07.16 |
[Database] DECODE & CASE 함수 사용법 (Oracle SQL) (0) | 2020.07.15 |
[Database] NVL,NVL2 함수 사용방법 (Oracle SQL) (0) | 2020.07.15 |
[Database] 데이터 타입 변환 TO_DATE,TO_NUMBER,TO_CHAR 사용법 (0) | 2020.07.15 |