본문 바로가기
반응형

SQL 문제 풀기/2. SQLD 기출 : 2024.3.01~2024.4.2554

<SQLD 54> rownum 에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 54.아래 팀 별 성적 테이블에서 승리 건수가 높은 순으로 3위까지 출력하되 3위의 승리 건수가 동일한 팀이 있다면 함께 출력하는 문장으로 알맞은 것은? [TABLE : 팀별성적]팀명승리건수패배건수A팀12080B팀20180C팀10190D팀100100E팀11090F팀100100G팀70130 ① SELECT TOP(3) 팀명, 승리건수 FROM 팀별성적 ORDER BY 승리건수 DESC; ② SELECT TOP(3) 팀명, 승리건수 FROM 팀별성적; ③ SELECT 팀명, 승리건수 FROM 팀별성적 WHERE ROWNUM 2024. 4. 24.
<SQLD 53> 날짜 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 53. 오라클 환경에서 날짜형 데이터를 다룰 경우 아래 SQL문의 결과로 가장 적절한 것은? SELECT TO_CHAR(TO_DATE('2015.01.10 10', 'YYYY.MM.DD HH24') +1/24/(60/10),'YYYY.MM.DD HH24:MI:SS') FROM DUAL; ① 2015.01.10 11:01:00 ② 2015.01.10 10:05:00 ③ 2015.01.10 10:10:00 ④ 2015.01.10 10:30:00 해설해보기 1. 2015.01.10 10 을 TO_DATE() 함수를 사용해서 날짜 형식으로 변환 TO_DATE('2015.01.10 10', 'YYYY.MM.DD HH24') 따라서 2015년 1월 10일 오전 10시로 변.. 2024. 4. 23.
<SQLD 52> rollup에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 52. 주어진 테이블에서 아래와 같은 결과를 반환하는 SQL문을 고르시오 [SQLD_52] DNAME YEAR SAL 경영지원부 2010 4900 경영지원부 2011 5000 경영지원부 2012 5100 인사부 2010 4800 인사부 2011 4900 인사부 2012 5000 [RESULT] DNAME YEAR SUM(SAL) 인사부 2010 4800 인사부 2011 4900 인사부 2012 5000 인사부 14700 경영지원부 2010 4900 경영지원부 2011 5000 경영지원부 2012 5100 경영지원부 15000 297000 ① SELECT DNAME, YEAR, SUM(SAL) FROM SQLD_52 GROUP BY ROLLUP((DNAME, YE.. 2024. 4. 22.
<SQLD 51> 조인에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 51. 다음의 JOIN 결과를 보고 올바른 것은? [TEST51_1] COL1 COL2 1 2 2 2 3 3 [TEST51_2] COL1 COL2 1 2 2 4 4 5 [RESULT] TEST51_1.COL1 TEST51_1.COL2 TEST51_2.COL1 TEST51_2.COL2 1 2 1 2 2 2 2 4 3 3 NULL NULL SELECT * FROM TEST51_1 ( ) TEST51_2 ON TEST51_1.COL1 = TEST51_2.COL1; 답 : _________ 해설해보기 ■ LEFT OUTER JOIN 조인은 여러 개의 테이블의 컬럼들을 활용하여 한 번에 원하는 것을 출력하고자 할 때 사용하는 문법이다. 그 중 LEFT JOIN이란 왼쪽 .. 2024. 4. 21.
<SQLD 50> NTILE 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 50. 주어진 데이터에 대해서 아래의 SQL문을 수행하였을 때의 결과값이 아래의 결과와 같을때 ( )빈칸에 들어갈 값을 적으시오. [TEST50] CREATE TABLE TEST50( COL1 VARCHAR(10), COL2 VARCHAR(10), COL3 NUMBER(10) ); INSERT INTO TEST50 VALUES('A','가',10); INSERT INTO TEST50 VALUES('A','가',20); INSERT INTO TEST50 VALUES('A','다',25); INSERT INTO TEST50 VALUES('B','가',10); INSERT INTO TEST50 VALUES('B','나',30); INSERT INTO TEST50 VA.. 2024. 4. 20.
<SQLD 49> Order by 에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 49. Oracle 환경에서 주어진 테이블을 아래의 결과와 같이 정렬하고자 할 때, SQL문의 빈칸에 들어갈 값을 작성하시오. [TEST 49] C1 C2 10 100 10 200 10 NULL 20 100 20 NULL 20 200 [RESULT] C1 C2 10 200 10 100 10 NULL 20 200 20 100 20 NULL [SQL] SELECT C1, C2 FROM TEST49 ORDER BY C1, C2 DESC ( ); 답 : _______ 해설해보기 ■ NULL 값은 어떻게 정렬될까? - ASC(오름차순) : NULL 값이 가장 마지막에 출력됩니다. - DESC(내림차순) : NULL 값이 가장 위에 출력됩니다. ■ Order By 절에서 .. 2024. 4. 18.
<SQLD 48> 레포팅 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 48. 다음 주어진 두개의 테이블에 대해서 아래와 같은 결과값이 반환되도록 아래의 SQL문의 빈칸에 들어갈 값을 적으시오. [TEST47_1] STUDENTNO 10 20 30 [TEST47_2] GRADE 50 60 70 [결과값] GRADE STUDENTNO SUM(B.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.STUDENTNO, SUM(B.GRADE) FROM TEST47_1 A, TEST47_2 B GROUP BY ( ); 답 : _______ 해설해보기 ■ Re.. 2024. 4. 17.
<SQLD 47> natural join에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 47. CROSS JOIN과 NATURAL JOIN의 차이점에 대해서 잘못 설명한 것은? ① NATURAL JOIN은 테이블 간 동일한 이름을 가진 모든 칼럼들에 대해 조인을 수행한다. ② CROSS JOIN은 테이블 간 조건이 없는 경우 생길 수 있는 모든 데이터의 조합을 의미한다. ③ CROSS JOIN과 NATURAL JOIN은 WHERE절에서 JOIN조건을 걸 수 없다. ④ CROSS JOIN은 WHERE절에 JOIN조건을 추가할 수 있다. 해설해보기 ■ CROSS JOIN CROSS JOIN은 두 테이블 간의 Cartesian Product (카테시안 곱) 을 생성합니다. 즉, 첫번째 테이블의 모든 행과 두 번째 테이블의 모든 행을 조합하여 가능한 모든.. 2024. 4. 16.
<SQLD 46> Order by에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 46. 주어진 SQL문에서 ORDER BY로 사용할 수 없는 것은? SELECT JOB, COUNT(*) AS ROWCNT FROM TEST46 GROUP BY JOB; ① ORDER BY JOB ② ORDER BY ROWCNT DESC ③ ORDER BY COUNT(*) ④ ORDER BY 3 해설해보기 제시된 쿼리는 TEST46 테이블에서 JOB 컬럼을 기준으로 그룹화하여, JOB별 레코드 수를 세는 쿼리입니다. 이 결과에 대한 정렬로 사용할 수 없는 ORDER BY 절을 선택하는 것이 문제가 원하는 것 입니다. ORDER BY절에 사용할 수 있는 것은 컬럼명, 별칭, select 문의 컬럼 순서(위치) 입니다. 오라클의 경우 별칭은 ORDER BY 절에서만.. 2024. 4. 15.
<SQLD 45> 데이터 분석함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 45. 파티션 별 윈도우에서 가장 먼저 나온 값을 구하는 WINDOW FUNCTION은 무엇인가? ① FIRST_VALUE ② LAG ③ LAST_VALUE ④ LEAD 해설해보기 [ 설명을 위한 테이블 : EMP_DATA ] EMPLOYEE_ID DEPARTMENT_ID NAME SALARY 1 101 Kim 3000 2 101 Lee 4000 3 102 Park 3500 4 102 Choi 2000 ■ FIRST_VALUE 함수 이 함수는 지정된 윈도우(파티션) 내에서 첫 번째 값을 반환하는 함수입니다. 특정 기준에 따라 데이터를 그룹화하여 각 그룹 내에서 첫 번째 값을 선택할 때 사용합니다. 쉽게 말해 그룹 내에서 첫 번째 값을 가져오는 함수입니다. EMP.. 2024. 4. 14.
<SQLD 44> 조인에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 44. 아래의 테이블에 대해서 주어진 SQL문을 수행한 결과로 알맞은 것은? [ 테이블 : TEST44_1 ] JUMUN PRICE 10 2000 10 3000 20 4000 20 3500 [ 테이블 : TEST44_2 ] CUSTRANK MINPRICE MAXPRICE VVIP 6000 6999 VIP 5000 5999 GOLD 4000 4999 [ SQL ] SELECT A.JUMUN AS JUMUN, B.CUSTRANK AS CUSTRANK FROM (SELECT JUMUN, SUM(PRICE) AS TOTAL FROM TEST44_1 GROUP BY JUMUN) A , TEST44_2 B WHERE A.TOTAL BETWEEN B.MINPRICE AND .. 2024. 4. 13.
<SQLD 43> in 연산자 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 43. 다음 주어진 테이블에 대해서 아래의 SQL문을 수행하였을 때 결과 행의 수는? [ 테이블 : TEST43 ] COL1 COL2 10000 ABC 10000 NULL 10000 AbC 20000 ABC [ SQL ] SELECT * FROM TEST43 WHERE (COL1, COL2) IN ((10000,'ABC')); ① NULL ② 1 ③ 2 ④ 3 해설해보기 ■ IN 연산자 IN 연산자는 주어진 값 목록 중 하나라도 일치하는 행을 찾을 때 사용하는 연산자입니다. 예를들어 아래와 같이 쓰인다면, col1 에 10000 또는 20000 이 있는 행을 찾습니다. WHERE col1 IN (10000, 20000) ; 하지만 문제에 제시된 쿼리처럼 튜플(여.. 2024. 4. 12.
<SQLD 42> like 연산자에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 42. 다음 주어진 데이터에 대해서 LIKE문을 사용하여 결과값에 "_" 가 들어간 문자열을 찾는 SQL문으로 올바른 것은? [ TEST42 ] USERID USERNAME 1 __H 2 _B_ 3 ___ 4 D__ [ RESULT ] USERID USERNAME 1 __H 2 _B_ 3 ___ 4 D__ ① SELECT * FROM SQLD31 WHERE NAME LIKE '%H'; ② SELECT * FROM SQLD31 WHERE NAME LIKE '%#_%'; ③ SELECT * FROM SQLD31 WHERE NAME LIKE '%@_%' ESCAPE '@'; ④ SELECT * FROM SQLD31 WHERE NAME LIKE '%_%' ESCAPE .. 2024. 4. 11.
<SQLD 41> NULL 값 비교에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 41. 다음 주어진 테이블에서 해당 SQL문을 실행한 결과로 알맞은 것은? [ TEST41 ] COL1 COL2 NULL A 1 B 2 C 3 D 4 E [ SQL ] SELECT * FROM TEST41 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. 4. 10.
<SQLD 40> 서브쿼리에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 40. 아래의 테이블들에 대해서 SQL문을 수행하였을 때의 결과 값은? [ TEST40_1 ] COL 1 2 3 4 [ TEST40_2 ] COL 2 NULL [ SQL ] SELECT COUNT(*) FROM TEST40_1 A WHERE A.COL NOT IN (SELECT COL FROM TEST40_2); ① 0 ② 1 ③ 3 ④ 6 해설해보기 제시된 쿼리는 TEST40_1 테이블에서, TEST40_2 테이블의 COL 컬럼에 없는 COL 값을 가진 행의 수를 세는 쿼리입니다. ■ NOT IN 주어진 리스트에 없는 값을 찾습니다. 주의깊게 봐야할 것은 TEST40_2 테이블의 COL 컬럼에 NULL 값이 존재한다는 점 입니다. NULL은 비교연산을 수행할 .. 2024. 4. 9.
<SQLD 39> 데이터 분석 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 39. 다음 보기 중 아래의 SQL에 대한 설명으로 가장 올바른 것은? SELECT 분류코드, AVG(상품가격) AS 상품가격, COUNT(*) OVER ( ORDER BY AVG(상품가격) RANGE BETWEEN 10000 PRECEDING AND 10000 FOLLOWING )AS CNT FROM 상품 GROUP BY 분류코드; ① WINDOW FUNCTION을 GROUP BY(분류코드) 절과 함께 사용하였으므로 위의 SQL은 오류가 발생한다. ② WINDOW FUNCTION의 ORDER BY 절로 인하여 문법오류이다. ③ CNT 칼럼은 분류코드별 평균상품가격을 서로 비교하여 -10000 ~ 10000 사이에 존재하는 분류코드의 개수를 구한 것이다. ④ C.. 2024. 4. 8.
<SQLD 38> 조인에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 38. 다음 중 아래에서 Join에 대한 설명으로 올바르지 않은 것은? 가) 마스터 테이블과 슬레이브 테이블 간의 조인은 일반적으로 기본키와 외래키 사이에서 발생한다. 나) EQUI Join은 두 개의 테이블 간에 칼럼 값이 일치하는 것을 조회한다. 다) EQUI Join은 >, =, "마스터 테이블과 슬레이브 테이블 간의 조인은 일반적으로 기본키와 외래키 사이에서 발생한다." 이 설명은 참입니다. 데이터베이스에서 테이블 간의 관계를 정의할 때, 보통 한 테이블의 기본키(Primary key) 를 다른 테이블에서 외래키(Foreign key)로 참조하여 조인합니다. " EQUI Join은 두 개의 테이블 간에 칼럼 값이 일치하는 것을 조회한다. " 이.. 2024. 4. 7.
<SQLD 37> 기타 비교연산자 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 37. 다음의 테이블을 보고 실행한 SQL문 중에서 그 결과가 올바르지 않은 것은? [ t_order 테이블 ] Orderyear Ordermonth Price 2020 01 1000 2020 02 6000 2020 03 2000 2020 04 3000 2020 05 2000 2020 06 1500 ① SELECT SUM(price) AS TOTAL FROM t_order WHERE orderyear BETWEEN '2020' AND '2021' AND ordermonth BETWEEN '01' AND '12'; # 결과 : 15,500 ② SELECT SUM(price) AS TOTAL FROM t_order WHERE ordermonth in ('01','0.. 2024. 4. 6.
<SQLD 36> 데이터 분석함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 35. 주어진 테이블에 대해서 아래와 같이 결과값이 반환되도록 아래의 SQL문의 ( ? )에 들어갈 윈도우 함수를 적으시오. [ SQLD_36 ] ENAME SAL 유비 1000 관우 1100 장비 1200 제갈량 1300 조운 1400 황충 1500 [ RESULT ] ENAME SAL SIM_CNT 유비 1000 2 관우 1100 2 장비 1200 2 제갈량 1300 2 조운 1400 2 황충 1500 1 [ SQL ] SELECT ENAME, SAL, COUNT(*) OVER (ORDER BY SAL ( ? ) BETWEEN 50 PRECEDING AND 100 FOLLOWING )AS SIM_CNT FROM SQLD_36; 답 : ( ? ) 해설해보기 R.. 2024. 4. 5.
<SQLD 35> 그룹 함수에 대한 기출문제 매일 SQLD 기출 문제 풀기 챌린지 문제 35. 다음 주어진 테이블에서 아래의 SQL을 수행한 결과로 알맞은 것은? [ TEST23 ] COL1 COL2 COL3 COL4 10 10 10 20 20 20 NULL 30 30 NULL NULL 10 NULL 30 10 40 [ SQL ] SELECT SUM(COL1+COL2+COL3+COL4) FROM TEST23; SELECT SUM(COL1) + SUM(COL2) + SUM(COL3) + SUM(COL4) FROM TEST23; ① 50, NULL ② NULL, 240 ③ 50, 240 ④ NULL, NULL 해설해보기 첫 번째 쿼리는 모든 컬럼의 값을 더한 후, 그 결과의 합을 계산하는 쿼리입니다. 그런데 주목할 점은 NULL .. 2024. 4. 4.
반응형