버글버글
DataBase 수업 기록(18.5) DQL 연습 본문
▶ 연습문제
* HR계정(교육용 계정), EMPLOYEES 테이블 기반
1. 급여평균이 10000 이상인 부서의 부서번호와 급여평균을 조회하기
2. 동일한 부서번호(DEPARTMENT_ID)로 그룹화하기
- 동일한 부서번호를 가진 사원들을 직업아이디(JOB_ID)로 다시 그룹화하기
- 즉, 부서별 직업아이디별로 그룹화하기
- 부서별 직업아이디별로 그룹화하여 각 그룹의 사원수 조회하기
- 부서번호가 없는 사원은 제외하기
【DEPARTMENTS 테이블 연습】
1. 동일한 지역(LOCATION_ID)으로 그룹화하여 조회하기
2. 동일한 지역(LOCATION_ID)으로 그룹화하여 각 지역별 존재하는 부서수 조회하기
- 부서수가 2 이상인 지역만 조회하기 (HAVING COUNT(*) >= 2;
3. 동일한 지역(LOCATION_ID)으로 그룹화하여 각 지역별 존재하는 부서수 조회하기
- MANAGER_ID가 없는 지역은 제외하고 조회하기
4. 부서명(DEPARTMENT_NAME)의 첫 2글자로 그룹화하여 해당 그룹의 개수 조회하기
5. 부서명(DEPARTMENT_NAME)의 첫 2글자로 그룹화하여 해당 그룹의 개수 조회하기
- 부서명의 첫 2글자가 'It', 'Co'인 부서만 조회하기
- 조건이 나오면 WHERE절을 써라
1. 급여평균이 10000 이상인 부서의 부서번호와 급여평균을 조회하기
SELECT
DEPARTMENT_ID, FLOOR(AVG(SALARY))
FROM EMPLOYEES
GROUP BY DEPARTMENT_ID
HAVING AVG(SALARY) >= 10000;
2. 동일한 부서번호(DEPARTMENT_ID)로 그룹화하기
SELECT DEPARTMENT_ID, JOB_ID, COUNT(*) AS 사원수
FROM EMPLOYEES
WHERE DEPARTMENT_ID IS NOT NULL
GROUP BY DEPARTMENT_ID, JOB_ID
ORDER BY 사원수;
【DEPARTMENTS 테이블 연습】
1. 동일한 지역(LOCATION_ID)으로 그룹화하여 조회하기
SELECT LOCATION_ID
FROM DEPARTMENTS
GROUP BY LOCATION_ID;
2. 동일한 지역(LOCATION_ID)으로 그룹화하여 각 지역별 존재하는 부서수 조회하기
SELECT LOCATION_ID, COUNT(*)
FROM DEPARTMENTS
GROUP BY LOCATION_ID
HAVING COUNT(*) >= 2;
3. 동일한 지역(LOCATION_ID)으로 그룹화하여 각 지역별 존재하는 부서수 조회하기
- MANAGER_ID가 없는 지역은 제외하고 조회하기
SELECT LOCATION_ID, COUNT(*)
FROM DEPARTMENTS
WHERE MANAGER_ID IS NOT NULL
GROUP BY LOCATION_ID;
4. 부서명(DEPARTMENT_NAME)의 첫 2글자로 그룹화하여 해당 그룹의 개수 조회하기
SELECT SUBSTR(DEPARTMENT_NAME, 1, 2), COUNT(*)
FROM DEPARTMENTS
GROUP BY SUBSTR(DEPARTMENT_NAME, 1, 2);
5. 부서명(DEPARTMENT_NAME)의 첫 2글자로 그룹화하여 해당 그룹의 개수 조회하기
- 부서명의 첫 2글자가 'It', 'Co'인 부서만 조회하기
- 조건이 나오면 WHERE절을 써라
SELECT SUBSTR(DEPARTMENT_NAME, 1, 2), COUNT(*)
FROM DEPARTMENTS
WHERE SUBSTR(DEPARTMENT_NAME, 1, 2) = 'IT'
OR SUBSTR(DEPARTMENT_NAME, 1, 2) = 'Co'
GROUP BY SUBSTR(DEPARTMENT_NAME, 1, 2);
위보다 권장하는 코드
SELECT SUBSTR(DEPARTMENT_NAME, 1, 2), COUNT(*)
FROM DEPARTMENTS
WHERE SUBSTR(DEPARTMENT_NAME, 1, 2) IN('IT', 'Co')
GROUP BY SUBSTR(DEPARTMENT_NAME, 1, 2);
'Database > database 수업 기록' 카테고리의 다른 글
DataBase 수업 기록(19.5) JOIN (0) | 2022.10.14 |
---|---|
DataBase 수업 기록(19) JOIN (0) | 2022.09.15 |
DataBase 수업 기록(18) DQL그룹 (0) | 2022.09.13 |
DataBase 수업 기록(17) 함수 - 기타 (0) | 2022.09.12 |
DataBase 수업 기록(16) 함수 - 문자 (0) | 2022.09.11 |