본문 바로가기

DBMS

[DBMS] 15

DML 실습

1. PLAYER 테이블에서 팀별 최대 몸무게인 선수의 TEAM_ID, REGION_NAME, PLAYER_NAME, WEIGHT 검색

(WHERE IN 사용하기)

- PLAYER 테이블에서 팀별 최대 몸무게

SELECT TEAM_ID, MAX(WEIGHT) FROM PLAYER
GROUP BY TEAM_ID
ORDER BY 1;

 

- 최종

SELECT P.TEAM_ID, REGION_NAME, PLAYER_NAME, WEIGHT
FROM PLAYER P JOIN TEAM T
ON P.TEAM_ID = T.TEAM_ID
AND (P.TEAM_ID, P.WEIGHT) IN (SELECT TEAM_ID, MAX(WEIGHT) FROM PLAYER GROUP BY TEAM_ID);

 

2. DEPT 테이블의 LOC별 평균 급여를 반올림한 값과 각 LOC별 SAL(평균 급여)의 총 합 조회

SELECT D.LOC, ROUND(AVG(E.SAL)), SUM(E.SAL)
FROM DEPT D JOIN EMP E
ON D.DEPTNO = E.DEPTNO
GROUP BY D.LOC;

 

3. EMP 테이블에서 HIREDATE가 FORD의 입사년도와 같은 사원 전체 정보 조회

SELECT * FROM EMP
WHERE TO_CHAR(HIREDATE, 'YYYY-MM-DD')
LIKE (SELECT SUBSTR(TO_CHAR(HIREDATE, 'YYYY-MM-DD'), 1, 4) FROM EMP WHERE ENAME = 'FORD')||'%';

 

4. AVG 함수를 쓰지 않고 PLAYER 테이블에서 선수들의 평균 키 구하기(NULL 미포함)

SELECT SUM(HEIGHT) / COUNT(HEIGHT) FROM PLAYER;

 

※ AVG 함수 사용

SELECT AVG(HEIGHT) FROM PLAYER;

 

※ NULL인 선수들은 키를 170으로 변경(NULL 포함)

SELECT AVG(NVL(HEIGHT, 170)) FROM PLAYER;

'DBMS' 카테고리의 다른 글

[DBMS] 17  (0) 2021.11.11
[DBMS] 16  (0) 2021.11.09
[DBMS] 14  (0) 2021.11.07
[DBMS] 13  (0) 2021.11.06
[DBMS] 12  (0) 2021.11.05