본문 바로가기
반응형

SQL 문제 풀기129

<SQLD 34> 그룹 함수와 null 값에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 34. 다음 주어진 테이블에서 집계 함수를 수행하였을 때 결과값으로 다른 것을 고르시오. [ TEST35 ] USERID USERCOUNT KIM 10 PARK 20 LIM NULL SIN NULL ① SELECT COUNT(NVL (USERCOUNT, 0)) FROM TEST35; ② SELECT SUM(NVL (USERCOUNT, 0)) / 4 FROM TEST35; ③ SELECT AVG(NVL (USERCOUNT, 0)) FROM TEST35; ④ SELECT AVG(NVL (USERCOUNT, 1)) - 0.5 FROM TEST35; 해설해보기 ■ NVL( A, B ) NVL()함수는 A값이 NULL이면 B를 출력하는 함수이다. ■ 그룹합수의 특징 그룹.. 2024. 4. 3.
<SQLD 33> 그룹 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 33. 다음 주어진 데이터에서 해당 SQL문을 실행 했을 때의 결과 값으로 알맞은 것은? [TABLE34] A X 1 100 1 NULL 2 100 2 200 [SQL] SELECT A, SUM(X) AS TAB FROM TABLE34 GROUP BY A; ① A TAB ---- ----- 1 100 ② A TAB ---- ----- 1 100 2 200 ③ A TAB ---- ----- 1 100 2 300 ④ A TAB ---- ----- 1 100 1 NULL 2 100 2 200 해설해보기 ■ 그룹함수의 특징 그룹함수인 SUM()은 NULL 값을 무시하는 특징을 가지고 있습니다. 따라서 A 컬럼의 값 별로 값이 묶였을 때 A=1인 그룹의 SUM(X) 값은.. 2024. 4. 2.
<SQLD 32> 일반 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 32. 보기에서 SELECT 결과가 NULL이 아닌 경우는? ① SELECT COALESCE(1, 2, 3) FROM DUAL; ② SELECT CASE 0 WHEN 1 THEN 2 ELSE NULL END FROM DUAL; ③ SELECT DECODE('A', 'B', 'C', NULL) FROM DUAL; ④ SELECT NULLIF('A', 'A') FROM DUAL; 해설해보기 1. COALESCE( A, B ) COALESC() 함수는 A가 NULL이면 B를 출력하는 함수이다. * NVL() vs COALESCE() - COALESCE()함수는 COALESCE( A, B, C ) 가 가능하여 A가 NULL이면 B, B도 NULL이면 C를 실행할 수 있.. 2024. 4. 1.
<SQLD 31> nvl 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 31. 다음 주어진 SQL문을 수행하였을 때의 결과가 아래와 같을 때 빈칸에 들어갈 것으로 알맞은 것은? [ SQL ] SELECT 10+20 * (( ? )(NULL, 0.1, 0.2)) FROM DUAL; [ 결과 ] 14 [ 보기 ] ① IS NULL ② NVL ③ NVL2 ④ COALESCE 해설해보기 1. A IS NULL IS NULL은 주어진 표현식이 NULL 인 경우 TRUE를 반환한다. 따라서 특정 컬럼 A가 IS NULL 이어야 한다는 조건을 주기 위해서 사용한다. 2. NVL( A, B ) NVL()함수는 A값이 NULL이면 B를 출력하는 함수이다. 3. NVL2(A, B, C) A가 NULL 아닌 경우 B를 반환하고, A가 NULL인 경우 .. 2024. 3. 31.
<SQLD 30> ntile 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 30. 아래의 SQL결과의 빈칸( ㄱ ), ( ㄴ ) 을 작성하시오. [ 테이블: TAB1 ] COL1 COL2 1 A 2 B 3 B 4 C 5 C 6 C 7 D [SQL] SELECT NT, COUNT(*) FROM (SELECT NTILE(3) OVER (ORDER BY COL1) AS NT FROM TAB1) WHERE 1=1 GROUP BY NT ORDER BY 1; [결과] NT COUNT(*) (ㄱ) (ㄴ) 2 2 3 2 답: 해설해보기 ■ 데이터 분석 함수 NTILE NTILE()은 데이터의 등급을 출력하는 함수이다. NTILE(숫자) => 괄호 안에 숫자를 입력하면, 그 수 만큼 등급을 나눈다는 것을 의미한다. 여기서 중요한 것은 나누고자 하는 등.. 2024. 3. 30.
<SQLD 29> reporting 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제30. 다음 주어진 테이블에 대해서 아래와 같은 결과값이 나오도록 SQL문의 빈칸에 들어갈 수 있는 내용을 고르시오. [ 테이블명: T_TEST ] DEPTNO JOB SAL 10 CLERK 1300 10 MANAGER 2150 20 CLERK 1900 20 ANALYST 6000 20 MANAGER 2000 [결과] DEPTNO JOB SUM(SAL) 10 CLERK 1300 10 MANAGER 2150 10 3450 20 CLERK 1900 20 ANALYST 6000 20 MANAGER 2000 20 9900 13350 [SQL] SELECT DEPTNO, JOB, SUM(SAL) FROM T_TEST GROUP BY ( ); ① DEPTNO, JOB ② G.. 2024. 3. 29.
<SQLD 28> row_number() 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제28. 아래의 SQL에 대한 결과를 적으시오. [TAB1] COL1 COL2 COL3 COL4 1 2 200 20 2 3 240 10 3 4 100 20 4 5 230 20 5 6 300 20 6 7 400 10 [ SQL ] SELECT COL2, COL1 FROM (SELECT ROW_NUMBER() OVER(PARTITION BY COL4 ORDER BY COL3 DESC) RN, COL1, COL2 FROM TAB1 WHERE COL1 5 AND COL4 > 10) WHERE RN = 1; 답 : ? 해설해보기 SQL을 풀기 위해선 IN LINE VIEW를 우선적으로 풀어야한다. 1. IN LINE VIEW 테이블 TAB1 에서 데이터를 출력하는데, COL.. 2024. 3. 28.
<SQLD 27> grouping sets 에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 27. 다음과 같은 결과를 조회하기 위한 SQL문의 빈칸 ( ? ) 을 작성하시오. [ 테이블명: TAB1 ] JOB 10 20 30 [ 테이블명: TAB2 ] GRADE 50 60 70 [ RESULT ] GRADE JOB SUM(GRADE) 50 10 50 50 20 50 50 30 50 50 150 60 10 60 60 20 60 60 30 60 60 180 70 10 70 70 20 70 70 30 70 70 210 [ SQL ] SELECT B.GRADE, A.JOB, SUM(B.GRADE) FROM TAB1 A, TAB2 B GROUP BY ( ? ); 해설해보기 ■ 데이터 분석 함수 grouping sets 직관적으로 그룹핑할 컬럼을 기입하여 집계 .. 2024. 3. 27.
<SQLD 26> outer 조인에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제26. OUTER JOIN 문제 다음은 Oracle 데이터베이스에서 사용하는 OUTER JOIN의 예제이다. 빈칸( ? )을 채워 Oracle의 OUTER JOIN을 표준 ANSI SQL로 변경하시오. [Oracle OUTER JOIN] SELECT * FROM EMP, DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO; [ANSI JOIN] SELECT * FROM EMP ( ? ) DEPT ON (EMP.DEPTNO = DEPT.DEPTNO); 해설해보기 ORACLE에서는 값이 없는 쪽에 (+) sign을 부텨주는 반면, 표준 ANSI SQL은 값이 없는 쪽이 outer라고 보면 된다. 따라서 값이 있는 쪽이 오른쪽이기 때문에 정답은 RIG.. 2024. 3. 26.
<SQLD 25> Like 연산자에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 25. 아래의 SQL문의 결과를 적으시오. [ 테이블명: SQLD25 ] N1 V1 1 SMITH 2 JOHN 3 ALX 4 CLARE 5 BLX SQL : SELECT COUNT(*) FROM SQLD25 WHERE V1 LIKE '_L%'; 해설해보기 ▶ LIKE 연산자 특정 패턴을 가진 문자열을 검색할 때 사용한다. like와 함께 쓰인 와일드카드(%)는 개수, 숫자, 문자 상관 없이 아무런 값이 와도 된다는 의미이며, like와 함께 쓰인 언더바(_)는 1개의 자릿수를 나타내고, 이 자리에 뭐가 와도 관계없다는 의미이다. SQL을 해석해보면, SQLD25 테이블의 행의 개수를 출력하는데 VI 컬럼의 값에 L이 포함되고, L 앞에 딱 하나의 값이 존재해야한.. 2024. 3. 25.
<SQLD 24> count 그룹함수/연산자 우선순위에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 24. 다음 SQL의 결과는 무엇인가? [ 테이블명: SQLD24 ] N1 ID N2 200 A T1 250 B T2 300 NULL T3 SQL : SELECT COUNT(*) FROM SQLD24 WHERE N1 >= 200 OR N2 IS NULL AND ID = 'B'; 답 ? 해설해보기 이 문제에서 집중해야할 것은, 연산자 우선순위이다. SQL에서는 AND 연산자가 OR 연산자보다 우선순위가 높다. 그래서 문제에서 제시한 쿼리를 괄호로 묶어서 보면, 아래와 같다. SELECT COUNT(*) FROM SQLD24 WHERE (N1 >= 200) OR (N2 IS NULL AND ID = 'B'); 위 쿼리를 기반으로 설명하면, N1 이 200 이상인 행.. 2024. 3. 24.
<SQLD 23> ntile 함수 관련 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제23. 아래의 SQL결과의 빈칸을 작성하시오. [ 테이블명: SQLD23 ] COL1 COL2 COL3 A 가 10 A 가 20 A 다 25 B 가 10 B 나 30 B 나 20 B 나 60 C 라 30 SQL : SELECT NTILE_3, COUNT(*) AS ROWCNT FROM ( SELECT COL1, COL2, COL3, NTILE(3) OVER(ORDER BY COL3) AS NTILE_3 FROM SQLD23 ) GROUP BY NTILE_3; RESULT : NTILE_3 ROWCNT 1 (ㄱ) 2 3 3 (ㄴ) 해설해보기 ■ 데이터 분석 함수 NTILE NTILE()은 데이터의 등급을 출력하는 함수이다. NTILE(숫자) => 괄호 안에 숫자를 .. 2024. 3. 23.
<SQLD 22> select 문의 6가지절의 실행순서에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 22. 아래의 SQL문에 대해서 실행 순서를 올바르게 나열한 것은? SELECT DEPTNO, COUNT(EMPNO) FROM SCOTT.EMP WHERE SAL >= 400 GROUP BY DEPTNO HAVING COUNT(EMPNO) >= 3 ORDER BY DEPTNO; ① FROM → WHERE → GROUP BY → HAVING → ORDER BY → SELECT ② FROM → WHERE → HAVING → GROUP BY → ORDER BY → SELECT ③ FROM → WHERE → GROUP BY → SELECT → HAVING → ORDER BY ④ FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER B.. 2024. 3. 22.
<SQLD 21> NULL 값에 대한 이해 매일 SQLD 기출 문제 풀기 챌린지 문제 21. 다음 주어진 테이블에서 해당 SQL문을 실행한 결과로 알맞은 것은? [ TEST17 테이블 ] COL1 COL2 NULL A 1 B 2 C 3 D 4 E SQL > SELECT * FROM test17 WHERE col1 IN(1,2,null); ① COL1 COL2 1 B 2 C ② COL1 COL2 2 B 2 C ③ COL1 COL2 1 B 2 C 3 D 4 E ④ COL1 COL2 NULL A 1 B 2 C 3 D 4 E 해설해보기 SQL 에서 null은 알 수 없는 값입니다. 따라서 null은 다른 값과 비교할 수 없기 때문에 in에 null값을 넣어주어도 null 인 행을 반환할 수 없습니다. 만약에 null 인 값에 대한 조건을 싶다면, IS .. 2024. 3. 21.
<SQLD 20>그룹함수 SUM에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제20. 아래 T1 테이블의 SQL실행 후 결과값을 작성하시오 ? [ 테이블명 : T1 ] COL1 COL2 COL3 10 NULL 10 NULL 50 10 0 10 10 [SQL] ㄱ. SELECT SUM(col2) FROM T1; ㄴ. SELECT SUM(col2) FROM T1 WHERE col1 > 0; ㄷ. SELECT SUM(col2) FROM T1 WHERE col1 IS NOT NULL; ㄹ. SELECT SUM(col2) FROM T1 WHERE col1 IS NULL; 단답형 답 ( ㄱ ) : ( ㄴ ) : ( ㄷ ) : ( ㄹ ) : 해설해보기 SUM() 함수 - 합계를 구하는 그룹함수 - 그룹함수는 NULL값을 무시하는 특성이 있다. # ㄱ. .. 2024. 3. 20.
<SQLD 19> 그룹함수 사용 SQL에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제19. 아래의 SQL문을 완성하시오. [ 테이블명: TAB1 ] COL1 1000 1000 1000 3000 3000 4000 9999 9999 [ 결과 ] COL1 3000 9999 SELECT COL1 FROM TAB1 ( ? ) COL1 HAVING COUNT(*) = 2 ORDER BY (CASE WHEN COL1 = 1000 THEN 0 ELSE COL1 END); 주관식 답 : 해설해보기 # 1. SELECT 절 COL1의 값을 출력 # 2. FROM 절 COL1을 가져올 테이블명을 기입 # 3. ( ? ) 과 HAVING절 우선 HAVING을 사용했다는 것을 보면, GROUP BY 함수를 유추 할 수 있다. 또한 출력된 결과를 확인하면 3000과 90.. 2024. 3. 19.
<SQLD 18> AVG 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제18. 아래의 SQL결과를 적으시오. [ 테이블 명: TAB1 ] COL1 4 8 4 8 NULL NULL select avg(col1) - avg(nvl(col1,0)) from tab1; 주관식 답 : 해설해보기 이 문제는 그룹함수인 avg 에 대해서 알고 있는지 물어보는 문제이다. * AVG() 그룹함수는 avg는 평균을 계산하는 함수이다. 이 함수는 null을 무시하고 계산한다. 위의 SQL을 해석해보면 1. COL1에 대한 평균 : NULL을 무시하기 때문에 4로 나눈다( NULL인 행은 포함하지 않고 무시) AVG(COL1) = ( 4 + 8 + 4 + 8 ) / 4 = 6 2. NULL을 0으로 바꾼 COL1에 대한 평균 : NULL을 특정 값으로 바.. 2024. 3. 18.
<SQLD 17> LIKE 연산자에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제17. 아래의 SQL결과를 적으시오. [ 테이블명 : SQLD17 ] N1 V1 1 SMITH 2 JOHN 3 ALX 4 CL 5 BLX select count(*) from sqld17 where v1 like '_L%'; 주관식 답 : 해설해보기 # 1. SELECT 절 COUNT(*)를 이용해서 NULL을 포함하여 모든 행의 수 출력 # 2. FROM 절 값을 가져올 테이블명 기입 #3. WHERE절 *WHERE V1 LIKE '_L%' - Like : 텍스트 데이터의 일부를 검색할때 사용 - v1 컬럼에서 첫번째 글자로 아무거나 한 글자 있고, 두번째 글자로 L이 오며, 그 이후는 아무거나 오는 것 추출 위 함수는 LIKE와 와일드 카드(%)와 언더바(_).. 2024. 3. 17.
<SQLD 16> 그룹함수 NULL값을 무시하는 것에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제16. 아래의 SQL결과를 적으시오 [테이블명 : SQLD16] N1 ID N2 200 A T1 250 B T2 300 NULL T3 SELECT COUNT(*) FROM SQLD16 WHERE N1 >= 200 OR N2 IS NULL AND ID = 'B'; 주관식 답 : 해설해보기 # 1. SELECT절 COUNT(*)는 NULL을 포함한 모든 행의 건수를 출력 # 2. WHERE절 - 조건 1 : N1의 값이 200이상 OR - 조건 2 : N2가 NULL이면서 (AND) ID가 B 조건1은 모든 행이 해당되므로 3건 조건2는 N2에 NULL인 값이 없으므로 해당사항 없음 따라서 정답은 3 직접 실행해보기 SELECT COUNT(*) FROM SQLD16 .. 2024. 3. 16.
<SQLD 15> ORDER BY 절의 이해에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제15. ORDER BY 의 특징으로 가장 적절하지 않은 것은? ① ORDER BY 의 기본 정렬은 내림차순이다. ② SELECT 구문에 사용되지 않은 컬럼도 OERDER BY 구문에서 사용할 수 있다. ③ ORDER BY 1, COL1 과 같이 숫자와 컬럼을 혼용하여 사용할 수 있다. ④ ORACLE 은 NULL 을 가장 큰 값으로 취급하여 ORDER BY 시 맨 뒤로 정렬되고 SQL SERVER 반대로 가장 앞으로 정렬한다. 해설해보기 정답 ORDER BY의 기본 정렬은 오름차순이다. 따라서 정답은 ① 직접 실행해보기 select ename, empno from emp order by empno; 2024. 3. 15.
반응형