Recent Posts
Recent Comments
08-23 07:50
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Today
Total
관리 메뉴

생각을 IT다

SQL 문제 풀이 (6번~10번) 본문

SQL

SQL 문제 풀이 (6번~10번)

흑백논리 2023. 1. 26. 09:14
반응형

문제 풀이 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