생각을 IT다
SQL 문제 풀이 (6번~10번) 본문
반응형
문제 풀이 DB : https://thinking-it.tistory.com/6
[6번 문제] 직급별 최고 연봉자와 평균연봉을 구하라
SELECT b.emp_name
, a.jikup
, 최고연봉
, 직급평균연봉
FROM (
SELECT jikup
, MAX(salary) 최고연봉
, ROUND(AVG(salary)) 직급평균연봉
FROM employee a
GROUP BY jikup
) a
INNER JOIN employee b
ON a.jikup = b.jikup
AND a.최고연봉 = b.salary
ORDER BY 최고연봉;
※결과값※
[7번 문제] 부서별 총 연봉합계를 구하라
SELECT SUM(case when dep_no='30' then salary else 0 end) as 영업부
, SUM(case when dep_no='20' then salary else 0 end) as 총무부
, SUM(case when dep_no='10' then salary else 0 end) as 자재부
, SUM(case when dep_no='40' then salary else 0 end) as 전산부
FROM employee
※결과값※
[8번 문제] 연봉 상위 5명의 직원을 검색하면? 단, 동일 연봉은 무시
SELECT emp_name
, salary
FROM (SELECT *
FROM employee
ORDER BY salary DESC
)
WHERE ROWNUM<=5;
※결과값※
[9번 문제] 연봉 상위 3위~5위 직원의 직원번호 직원명 연봉을 검색하면? 단, 동일 연봉은 무시
SELECT emp_no
, emp_name
, salary
FROM (
SELECT emp_no
, emp_name
, salary
, RANK() OVER (ORDER BY salary DESC) as ranking
FROM employee
) ranked
WHERE ranked.ranking BETWEEN 3 AND 5;
※결과값※
[10번 문제] 부서별 사원수 및 고객수 구하기
SELECT a.dep_name 부서
, COUNT(b.emp_no) 사원
, COUNT(c.cus_no) 고객
FROM dept a
LEFT JOIN employee b
ON a.dep_no = b.dep_no
LEFT JOIN customer c
ON b.emp_no = c.cus_no
GROUP BY a.dep_name
ORDER BY COUNT(*) DESC;
※결과값※
반응형
'SQL' 카테고리의 다른 글
MySQL 내장 함수 정리 (0) | 2023.01.30 |
---|---|
오라클(Oracle) SQL 함수 정리 (0) | 2023.01.30 |
SQL 문제 풀이 (16번~20번) (0) | 2023.01.30 |
SQL 문제 풀이 (11번~15번) (0) | 2023.01.26 |
SQL 문제 풀이 (1번~5번) (0) | 2023.01.25 |
Comments