반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바
- ifelse
- Join
- for문
- 생성자
- Java
- 오라클
- .repeat
- 겟터
- 생성자쓰는이유
- getter
- 연산자
- SQL
- 상속
- executeUpdate
- 제어문
- int오류
- .substring
- setter
- 객체
- 삼항연산자
- 프로그래머스
- SELECT 절
- sql오류
- 작성순서
- 카카오인턴십
- 향상된for문
- 칼럼명에 별칭 지정
- HAVING
- 이터레이블
Archives
- Today
- Total
CoDream
[NCS전공교과] SQL활용 (문제해결시나리오) 본문
728x90
반응형
1.문제 1. 2001020413_19v4.1 기본 SQL 작성하기
점수 (40.0점)
아래의 SQL구문은 부서 별 평균 월급이 2800000을 초과하는 부서를 조회한 것이다.
결과가 올바르지 않다고 할 때, 그 원인(20점)과 올바르게 수정한 조치사항(20점)을 각각 항목에 맞게 기술하시오. (총 40점)
SELECT DEPT, SUM(SALARY) 합계, FLOOR(AVG(SALARY)) 평균, COUNT(*) 인원수
FROM EMP
WHERE SALARY > 2800000
GROUP BY DEPT
ORDER BY DEPT ASC;
본인답변 | 결과가 올바르지 않다고 할 때, 그 원인(20점) 그룹의 조건을 주는데 WHERE절에 주었음. WHERE에는 개인함수 조건을 줄 때 적어야함. |
모범답안 | GROUP BY로 묶인그룹에 조건을 추가하기위해 HAVING절에 조건이 추가되어야 한다. |
본인답변 | 바르게 수정한 조치사항(20점) //부서 별 평균 월급이 2800000을 초과하는 부서 SELECT DEPT, SUM(SALARY) 합계 , FLOOR(AVG(SALARY)) 평균 , COUNT(*) 인원수 FROM EMP GROUP BY DEPT HAVING FLOOR(AVG(SALARY)) > 2800000 ORDER BY DEPT ASC; WHERE절의 조건을 삭제 후 HAVING절에 추가해야함. |
모범답안 | SELECT DEPT, SUM(SALARY) 합계, FLOOR(AVG(SALARY)) 평균, COUNT(*) 인원수 FROM EMP GROUP BY DEPT HAVING FLOOR(AVG(SALARY)) > 2800000 ORDER BY DEPT ASC; |
2. 2001020413_19v4.2 고급 SQL 작성하기 점수 (60.0점)
ROWNUM을 이용해서 월급이 가장 높은 3명을 뽑을려고 하였으나, 올바른 결과가 조회 되지 않았다.
결과가 잘못 조회된 이유를 [원인](30점)에 기술하고, 아래의 구문을 수정하여 [조치내용](30점)에 기술하시오. (총 60점)
[SQL구문]
SELECT ROWNUM, EMPNAME, SAL
FROM EMP
WHERE ROWNUM <= 3
ORDER BY SAL DESC;
본인답변 | 결과가 잘못 조회된 이유를 [원인](30점) WHERE 절에서 ROWNUM을 단독으로 사용하면 데이터가 정렬되기 전(EMP 기본 테이블에서)에 ROWNUM이라는 조건이 부여됨. 한번 사용할 예정이면 서브쿼리를 여러번 사용할 예정이라면 뷰를 이용해 가상의 테이블을 만들어준 후 FROM에 적어야함. |
모범답안 | 해석순서상 ORDER BY 절 전에 상위 3명을 뽑기 때문에 원하는 결과가 나오지 않음 |
본인답변 | 아래의 구문을 수정하여 [조치내용](30점) SELECT ROWNUM, EMPNAME, SAL FROM ( SELECT EMPNAME, SAL FROM EMP ORDER BY SAL DESC ) WHERE ROWNUM <= 3 ; |
모범답안 | SELECT ROWNUM,EMPNAME,SAL FROM (SELECT * FROM EMP ORDER BY SAL DESC) WHERE ROWNUM <=3; |
728x90
반응형
'TEST (오답노트)' 카테고리의 다른 글
서버프로그램 구현 (0) | 2024.05.13 |
---|---|
애플리케이션 설계 (0) | 2024.05.13 |
[NCS 전공교과] UI 디자인, UI 구현 TEST (포트폴리오) (0) | 2024.04.23 |
[NCS전공교과] SQL응용 (문제해결시나리오) (0) | 2024.04.03 |
[NCS전공교과] 데이터베이스구현 TEST (0) | 2024.04.03 |