1. SUM, AVG, MAX, MIN, COUNT 그룹함수 사용 WHERE, GROUP BY, HAVING 사용
1 2 3 4 5 6 7 8 9 10 11 | SELECT DEPTNO , SUM(SAL) , AVG(SAL) , MAX(SAL) , MIN(SAL) , COUNT(SAL) FROM EMP WHERE JOB='MANAGER' GROUP BY DEPTNO HAVING DEPTNO >= 10 ORDER BY DEPTNO | cs |
출력 결과
2. ROUND 반올림, TRUNC 값짜름
1 2 3 4 5 6 7 8 9 | -- ROUND 반올림, TRUNC 짜른값 SELECT ROUND(45.62,0) -- 45 , ROUND(45.62,1) -- 45.6 , ROUND(45.62,2) -- 45.62 , ROUND(45.62,-1) -- 50 , TRUNC(45.62,0) -- 45 , TRUNC(45.62,1) -- 45.6 , TRUNC(45.62,2) -- 45.2 FROM DUAL | cs |
출력 결과
3. 다중행 서브 쿼리( IN / ALL / ANY / SOME / EXISTS )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | --IN : 메인 쿼리의 비교 조건이 서브쿼리의 결과중에서 하나라도 일치하면 참, ‘=‘비교만 가능 SELECT * FROM EMP WHERE SAL IN(800, 1600) -- ; -- ALL : 메인 쿼리의 비교 조건이 서브쿼리의 결과중에서 모든값이 일치하면 참, SELECT * FROM EMP WHERE SAL < ALL(2000, 2500) -- WHERE SAL < 2000 AND SAL < 2500 ; --ANY, SOME : 메인 쿼리의 비교 조건이 서브쿼리의 결과중에서 하나라도 일치하면 참, ‘=‘비교만 가능 SELECT * FROM EMP WHERE SAL < ANY(2000, 2500) -- WHERE SAL < 2000 OR SAL < 2500 ; SELECT * FROM EMP WHERE SAL < SOME(2000, 2500) -- WHERE SAL < 2000 OR SAL < 2500 ; | cs |
IN, EXISTS
값이 안에 존재할때 IN
값이 안에 존재할때 EXSITS
두 표현을 사용할 수 있다.
아래 식은 같은 결과 값을
IN과 EXISTS를 각각 따로 사용해 작성한 쿼리이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | --IN SELECT * FROM EMP WHERE DEPTNO IN(10,20) ; --EXISTS SELECT * FROM EMP WHERE EXISTS ( SELECT DEPTNO FROM DEPT WHERE DEPTNO IN(10,20) ) ; | cs |