데이터베이스/MySQL
MySQL 2일차 - 문제풀이
비전공개미
2022. 9. 6. 18:37
반응형
SMALL
[문제풀이]
문제1] 'S'로 시작하는 모든 사원과 부서번호를 출력하시오.
==> SELECT * FROM emp WHERE ename LIKE 'S%';
문제2] 사원의 최대 급여와 최소 급여의 차액을 출력하시오.
==> SELECT MAX(SAL), MIN(SAL), (MAX(SAL) - MIN(SAL)) '차액' FROM emp;
문제3] 30번 부서의 구성원 수와 사원들 급여의 합계와 평균을 출력하시오.
==> SELECT count(ename), sum(sal), avg(sal) FROM emp WHERE deptno='30';
문제4] 평균급여가 가장 높은 부서의 번호를 출력하시오.
==> SELECT deptno, avg(sal) as avgsal FROM emp GROUP BY deptno ORDER BY avgsal DESC LIMIT 1;
ㄴ 부서번호, 급여평균을 출력, group by deptno로 그룹을 묶고 order by avgsal값을
높은순으로 정렬한 후 맨위에 값 1개 출력
문제5] 세일즈맨(SALESMAN)을 제외하고, 각 업무별 사원의 총 급여가 3,000 이상인 각 업무에 대해
업무명과 각 업무별 평균급여를 출력하시오. 단 평균급여의 내림차순으로 출력한다.
==> SELECT job, avg(SAL) as avgsal
FROM emp
WHERE job != 'SALESMAN'
GROUP BY job
HAVING avgsal >= 3000
ORDER BY avgsal DESC;
문제6] 전체 사원 가운데 직속상관이 있는 사원의 수를 출력하시오.(셀프조인)
==> SELECT distinct(a.empno), a.ename, a.mgr
FROM emp as a, emp as b
WHERE a.empno=b.mgr AND a.mgr IS NOT NULL;
문제7] 사원 SCOTT보다 급여를 많이 받는 사람의 이름을 출력하시오.(서브쿼리)
mysql> SELECT SAL FROM EMP WHERE ENAME = 'SCOTT';
==> SELECT ename FROM emp WHERE sal > (SELECT sal FROM emp WHERE ename='SCOTT');
mysql> SELECT distinct deptno FROM emp ;
mysql> SELECT ename, distinct deptno FROM emp ; --에러발생함
반응형
LIST