본문 바로가기
SQL 문제 풀기/2. SQLD 기출 : 2024.3.01~2024.4.25

<SQLD 54> rownum 에 대한 기출문제

by HYEHYE_SON 2024. 4. 24.
728x90

매일 SQLD 기출 문제 풀기 챌린지


 


문제 54.

아래 팀 별 성적 테이블에서 승리 건수가 높은 순으로 3위까지 출력하되 3위의 승리 건수가 동일한 팀이 있다면 함께 출력하는 문장으로 알맞은 것은?
 

[TABLE : 팀별성적]

팀명승리건수패배건수
A팀12080
B팀20180
C팀10190
D팀100100
E팀11090
F팀100100
G팀70130

 
 
① 

SELECT TOP(3) 팀명, 승리건수 
    FROM 팀별성적   
    ORDER BY 승리건수 DESC;   

 

② 

SELECT TOP(3) 팀명, 승리건수
    FROM 팀별성적; 

 

③ 

SELECT 팀명, 승리건수   
    FROM 팀별성적  
    WHERE ROWNUM <= 3
    ORDER BY 승리건수 DESC;

 

④ 

 SELECT TOP(3) WITH TIES 팀명, 승리건수
     FROM 팀별성적     
     ORDER BY 승리건수 DESC;

 
 


해설해보기

문제의 sql문은
emp 테이블에서 모든 행을 출력하는데, 
출력 조건이 A로 시작하는 ename을 출력하는 것이다. 
그 이유는 %가 A의 뒤에 있기 때문이다.

직접 실행해본 결과 a와 A는 구분해서 인식하기 때문에
①,④ 은 오답이다.

따라서 정답은

 
직접 실행해보기

# 대문자 A 입력 

select * 
	from emp 
   	where ename like 'A%';
A로 시작하는 사원과 관련된 모든 행이 출력됨

 

# 소문자 a 입력

select * 
	from emp 
   	where ename like 'a%';
소문자 a로 시작하는 ename은 없기 때문에 출력 레코드 없음

 


관련 스크립트

<관련스크립트>

alter session set nls_Date_format='RR/MM/DD';
drop table emp;
drop table dept;


CREATE TABLE DEPT
       (DEPTNO number(10),
        DNAME VARCHAR2(14),
        LOC VARCHAR2(13) );


INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

CREATE TABLE EMP (
 EMPNO               NUMBER(4) NOT NULL,
 ENAME               VARCHAR2(10),
 JOB                 VARCHAR2(9),
 MGR                 NUMBER(4) ,
 HIREDATE            DATE,
 SAL                 NUMBER(7,2),
 COMM                NUMBER(7,2),
 DEPTNO              NUMBER(2) );


INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'81-11-17',5000,NULL,10);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'81-05-01',2850,NULL,30);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'81-05-09',2450,NULL,10);
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'81-04-01',2975,NULL,20);
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'81-09-10',1250,1400,30);
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'81-02-11',1600,300,30);
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,'81-08-21',1500,0,30);
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'81-12-11',950,NULL,30);
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'81-02-23',1250,500,30);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'81-12-11',3000,NULL,20);
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'80-12-09',800,NULL,20);
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'82-12-22',3000,NULL,20);
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'83-01-15',1100,NULL,20);
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'82-01-11',1300,NULL,10);


commit;

 
 
 
 
 
 
 
 
 
 

반응형