ON
JOIN 을 하기 전 필터링을 한다
(=ON 조건으로 필터링이 된 레코드들간 JOIN이 이뤄진다)
WHERE
JOIN 을 한 후 필터링을 한다
(=JOIN을 한 결과에서 WHERE 조건절로 필터링이 이뤄진다)
FLOOR 함수
소수점 첫째 자리에서 버림하는 함수로,
주어진 숫자와 가장 근접한 작은 정수를 출력
ex) FLOOR(564.159) => 564
ROUND 함수
ROUND 함수는 숫자를 각 자리에서 반올림해주는 함수
ex ) ROUND(564.159, 2) => 564.18
ROUND( 숫자, N ) => N자리 숫자 뒤에서 반올림
CEIL 함수
소수점 첫째 자리에서 올림하는 함수로,
주어진 숫자와 가장 근접한 큰 정수를 출력한다
ex) CEIL(564.759) => 565
ORACLE에서 OVER() 사용 시, GROUP BY나 서브쿼리없이 분석 함수(SUM, MAX, COUNT 등)와 집계함수(GROUP BY, ORDER BY)를 사용할 수 있다.
OVER을 이용하면 집계함수 사용시 서브쿼리를 사용하지 않아 쿼리 길이를 획기적으로 줄일 수 있다.
오라클은 LIMIT 키워드가 없다.
비슷한 역할을 하는 ROWNUM을 활용하면 된다.
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
하지만 문제가 있다!!
ROWNUM은 WHERE절에서 사용할 수 있어 ORDER BY보다 먼저 실행된다.
그래서 정렬 후 적용하려면 서브 쿼리를 활용해 먼저 수행한 후 원하는 개수의 데이터를 뽑아야 한다.
SELECT *
FROM
(
SELECT *
FROM SAMPLE
ORDER BY AGE
)
WHERE ROWNUM <= 2