[신유형] sqld 시험 TOP N QUERY / PIVOT & UNPIVOT / 정규 표현식 예상 문제 (10문제)

The short URL: https://hoyait.com/oq5a

[신유형] sqld 시험 TOP N QUERY / PIVOT & UNPIVOT / 정규 표현식 예상 문제

정답은 하단에 있습니다.

문제 1

PIVOT을 이용한 데이터 변환 SQL 구문 중 적절하지 않은 것은?

 

1. SELECT * FROM (SELECT EMPNO, JOB, DEPTNO FROM EMP) PIVOT (COUNT(EMPNO) FOR DEPTNO IN (10,20,30));

2. SELECT * FROM (SELECT EMPNO, JOB, DEPTNO FROM EMP) PIVOT (COUNT(JOB) FOR DEPTNO IN (10,20,30));

3. SELECT * FROM (SELECT JOB, DEPTNO FROM EMP) PIVOT (COUNT(DEPTNO) FOR DEPTNO IN (10,20,30));

4. SELECT * FROM (SELECT ENAME, JOB, DEPTNO FROM EMP) PIVOT (COUNT(ENAME) FOR DEPTNO IN (10,20,30));

문제 2

UNPIVOT으로 데이터를 변환할 때 올바른 SQL 구문은?

1. SELECT * FROM TEST1 UNPIVOT(CNT FOR DEPTNO IN (“10″,”20″,”30”));

2. SELECT * FROM TEST1 UNPIVOT(DEPTNO FOR CNT IN (“10″,”20″,”30”));

3. SELECT * FROM TEST1 UNPIVOT(CNT FOR DEPTNO IN (10,20,30));

4. SELECT * FROM TEST1 UNPIVOT(DEPTNO FOR CNT IN (10,20,30));

문제 3

상위 5명을 급여가 높은 순서로 추출하는 SQL문으로 적절하지 않은 것은?

1. SELECT * FROM EMP ORDER BY SAL DESC FETCH FIRST 5 ROWS ONLY;

2. SELECT * FROM EMP ORDER BY SAL DESC FETCH NEXT 5 ROW ONLY;

3. SELECT * FROM (SELECT EMPNO, ENAME, DEPTNO, SAL, RANK() OVER(ORDER BY SAL DESC) AS SAL_RANK FROM EMP) WHERE SAL_RANK <= 5;

4. SELECT * FROM (SELECT E.*, ROWNUM AS SAL_RANK FROM EMP E ORDER BY SAL DESC) WHERE SAL_RANK <= 5;

문제 4

다음 SQL 중 빈칸에 들어갈 함수식으로 알맞지 않은 것은?

1. REGEXP_SUBSTR(JOB_ID, ‘\D+’, 4)

2. REGEXP_SUBSTR(JOB_ID, ‘(\D+)_(\D+)’, 1, 1, NULL, 1)

3. REGEXP_REPLACE(JOB_ID, ‘[A-Z]+_’)

4. REGEXP_REPLACE(JOB_ID,’.+_’, ”)

문제 5

급여가 낮은 순서대로 6~8번째 값을 출력하는 SQL문으로 적절하지 않은 것은?

1. SELECT EMPNO, ENAME, DEPTNO, SAL FROM (SELECT E.*, RANK() OVER(ORDER BY SAL) AS SAL_RANK FROM EMP E) WHERE SAL_RANK BETWEEN 6 AND 8;

2. SELECT EMPNO, ENAME, DEPTNO, SAL FROM (SELECT E.*, DENSE_RANK() OVER(ORDER BY SAL) AS SAL_RANK FROM EMP E) WHERE SAL_RANK BETWEEN 5 AND 7;

3. SELECT EMPNO, ENAME, DEPTNO, SAL FROM (SELECT E.*, ROWNUM AS SAL_RANK FROM EMP E ORDER BY SAL) WHERE SAL_RANK BETWEEN 6 AND 8;

4. SELECT EMPNO, ENAME, DEPTNO, SAL FROM EMP ORDER BY SAL OFFSET 5 ROWS FETCH NEXT 3 ROWS ONLY;

문제 6

다음 SQL의 실행 결과로 알맞은 것을 고르시오.

SELECT REGEXP_REPLACE(PHONE_NUMBER, ‘\d+’, ‘XXX’, 1, 2) FROM CONTACTS;

1. PHONE_NUMBER의 모든 숫자가 ‘XXX’로 대체된다.

2. 두 번째 숫자 시퀀스만 ‘XXX’로 대체된다.

3. 첫 번째와 두 번째 숫자 시퀀스가 ‘XXX’로 대체된다.

4. 마지막 숫자 시퀀스만 ‘XXX’로 대체된다.

문제 7

다음 중 Top N Query에 대한 설명 중 틀린 것은?

1. 윈도우 함수를 사용하여 상위 N개에 대한 값을 추출할 수 있으나 단일 Query로 표현 불가하다.

2. ROWNUM을 사용한 방식은 ROWNUM 할당 전에 먼저 순서대로 데이터를 정렬한 뒤 ROWNUM을 부여 후 추출하는 것이 좋다.

3. FETCH 절을 사용하면 단일 Query로도 정렬 순서대로의 상위 N개에 대한 값을 추출할 수 있다.

4. OFFSET 절을 사용하면 FETCH절에서 반드시 NEXT 함수를 사용하여 그 다음 n개를 추출할 수 있다.

문제 8

다음 중 빈칸에 들어갈 함수식으로 알맞지 않은 것은?

1. REGEXP_SUBSTR(JOB_ID, ‘\D+’, 4)

2. REGEXP_SUBSTR(JOB_ID, ‘(\D+)_(\D+)’, 1, 1, NULL, 1)

3. REGEXP_REPLACE(JOB_ID, ‘[A-Z]+_’)

4. REGEXP_REPLACE(JOB_ID,’.+_’, ”)

문제 9

SQL에서 NULL에 대한 설명으로 가장 적절하지 않은 것은?

1. NULL은 값이 없음을 나타내는 특별한 상태이다.

2. NULL은 숫자 0이나 빈 문자열과 동일하게 취급된다.

3. NULL을 포함한 연산 결과는 NULL이 된다.

4. NULL 값을 확인하기 위해 IS NULL을 사용한다.

문제 10

다음 SQL 실행 결과로 알맞은 것을 고르시오.

SELECT REGEXP_REPLACE(NAME, ‘[aeiou]’, ‘*’) FROM EMPLOYEES;

1. 모든 모음이 ‘*’로 대체된다.

2. 첫 번째 모음만 ‘*’로 대체된다.

3. 모든 자음이 ‘*’로 대체된다.

4. 첫 번째 자음만 ‘*’로 대체된다.

 


 

정답 및 해설

문제 1: 정답 3번

PIVOT을 사용하여 특정 컬럼을 기준으로 데이터를 변환할 수 있습니다. SELECT 절에서 PIVOT 컬럼과 COUNT 대상 컬럼을 적절히 설정해야 합니다.

  • 정답: 3. COUNT에 적절한 컬럼이 설정되지 않음

문제 2: 정답 1번

UNPIVOT은 지정한 컬럼들의 데이터를 행으로 변환합니다. 컬럼 이름은 문자열 없이 바로 지정해야 합니다.

  • 정답: 1. 컬럼 이름에 문자열이 사용됨

문제 3: 정답 2번

상위 N개의 데이터를 구할 때 ROWNUM과 윈도우 함수를 사용하여 정렬 후 RANK를 부여하는 방식이 주로 사용됩니다.

  • 정답: 2. ROWNUM 표현 오류

문제 4: 정답 3번

정규 표현식을 통해 문자열의 패턴을 치환하거나 추출할 때 각 함수의 매개변수는 적절히 설정해야 합니다.

  • 정답: 3. COUNT에 적합하지 않은 패턴 설정

문제 5: 정답 2번

RANK와 DENSE_RANK를 활용해 특정 구간의 순위 데이터를 추출합니다. 6~8번째 값을 올바르게 선택하려면 BETWEEN을 사용해야 합니다.

  • 정답: 2. RANK 범위 오류

문제 6: 정답 2번

REGEXP_REPLACE의 매개변수를 통해 두 번째 일치 부분만 변경하려면, 위치 인수에 2를 설정합니다.

  • 정답: 2. 두 번째 시퀀스만 대체됨

문제 7: 정답 1번

Top N Query는 단일 쿼리로 상위 N개의 데이터를 추출할 수 있는 방법이 제공됩니다. 윈도우 함수로도 가능합니다.

  • 정답: 1. 단일 쿼리로 불가능하다는 설명 오류

문제 8: 정답 3번

정규식 패턴을 사용하여 특정 패턴을 추출할 때, 매개변수가 적합하지 않은 경우 오류가 발생할 수 있습니다.

  • 정답: 3. 패턴 매개변수 오류

문제 9: 정답 2번

NULL은 숫자 0이나 빈 문자열과 같은 값이 아닌, 값이 없음을 나타내는 상태입니다.

  • 정답: 2. NULL이 숫자 0과 동일하다는 설명 오류

문제 10: 정답 1번

REGEXP_REPLACE는 매개변수의 패턴에 일치하는 모든 문자를 대체합니다. ‘[aeiou]’는 모든 모음을 의미합니다.

  • 정답: 1. 모든 모음이 ‘*’로 대체됨

 

The short URL: https://hoyait.com/oq5a

Leave a Comment