이런질문을 드려도 될지모르겠지만.. 0 7 1,434

by 이묵 [2017.06.20 13:28:02]


사이버대학을 다니면서 이번에 오라클 기말고사를 치루게되었는데요.

오답처리된 문제중에 도저히 이해가되질않고 억울한거같아

이의신청하려는 문제가있습니다.

한번 봐주시고 의견달아주시면 감사하겠습니다.

[보기]
SELECT employee_id, last_name, salary
  FROM employees
 WHERE department_id = 50
 ORDER BY salary
UNION ALL
SELECT manager_id, last_name, salary
  FROM employees
 WHERE department_id = 80
 ORDER BY salary DESC;
===============================================================
1.ORDER BY 절이 두 번 사용되었다.

2.같은 WHERE 절의 조건을 두 번 사용하였다.

3.첫 번째 쿼리에 ORDER BY 절을 사용하였다.

4.employees테이블이 두 쿼리에 동시에 사용되었다.

5.첫 번째 쿼리와 두 번째 쿼리의 SELECT list 컬러명이 다르다.

===============================================================

보자마자 1번을 찍었습니다.

union all 사용시 order by 절은 쿼리의 맨 마지막에 와야된다는 지식을 갖고있기에

1번을 찍고 바로넘겼습니다.

 

그런데 오답으로 처리되었습니다.

 

정답은 3번이였습니다.

 

물론 3번이 맞는건 이해가되는데 1번도 정답 아닌가요?

여러분들의 생각은 어떠신가요.

 

 

 

 

by 랑에1 [2017.06.20 14:05:07]

좀 애매하긴 하네요

문제가 아래처럼 되어있었다면 1번을 고르진 않으셨겠죠?

SELECT employee_id, last_name, salary
FROM 
(
SELECT employee_id, last_name, salary
  FROM employees
 WHERE department_id = 50
 ORDER BY salary

UNION ALL
SELECT manager_id, last_name, salary
  FROM employees
 WHERE department_id = 80
 ORDER BY salary DESC;

개인적인 의견으로는 문제 출제하신분의 설명이 명확하지 않은 것 같긴합니다.

어거지 좀 부려보자면 3번 문항에서 '첫번째 쿼리'라는것도 잘못된 표현같거든요.

union all 로 묶였으니 전체가 하나의 쿼리잖아요?

출제자의 의도는 알겠으나.. 아무튼 좀 애매하네요;;


by jkson [2017.06.20 14:45:35]

저같으면 이의 제기합니다 ㅎㅎ

어찌됐든 해당 쿼리에 괄호가 사용되지 않은 상태에서 UNION ALL 위쪽에서

ORDER BY가 사용된 것이 잘못이고

결론적으로 ORDER BY가 두 번 사용되었기에 1번도 전혀 틀린 말은 아닌 것 같네요.

만약 1번이 괄호를 사용하면 ORDER BY를 두 번 사용할 수 있기 때문에 틀린 답이 아니다라고 한다면

3번과 상충되는 말이되는 거죠. 괄호를 사용하면 UNION ALL 위쪽에서도 ORDER BY를 사용할 수 있는 걸요.

문제의 표현도 불명확하구요. 이의 제기하세요.


by 이묵 [2017.06.20 15:05:11]

두 분 답변감사합니다.

힘을얻고가네요~!

 


by 마농 [2017.06.20 16:31:51]

오류의 원인을 선택하는 문제인 듯 하네요.
두번째 쿼리의 order by 를 제거해도 여전히 오류가 나므로.
order by 를 두번 사용한 것이 원인은 아닌 듯요.


by jkson [2017.06.20 16:54:50]

1번과 3번중에서 선택하라면 3번이 더 옳은 선택지겠지만 1번도 틀린 말은 아니지 않나요?

있으면 안 될 위치에 order by가 한 번 더 있어서 나는 오류이기도 하니까요.

함정 문제인 것 같은데.. 이건 좀..;


by 마농 [2017.06.20 21:58:20]

의도적으로 함정을 판 문제라면?
이의제기는 받아들여지지 않을 듯 ㅠ,.ㅠ


by 이묵 [2017.06.21 14:09:22]

마농님 답변에 수긍해버렸네요.

눈물이나지만 좋은답변 감사합니다 ㅠ,.ㅠ

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입