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

<SQLD 46> Order by에 대한 기출문제

by HYEHYE_SON 2024. 4. 15.
728x90

매일 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 절에서만 사용 가능한데,

그 이유가 궁금하다면, 아래 게시글을 참고해주세요.

 

 

컬럼의 alias(별칭) 왜 Order By 절에서만 사용이 가능할까?

SQL 쿼리문을 작성할 때 SELECT절에서 alias(별칭)를 사용하곤 한다. 하지만, WHERE절은 물론이며 GROUP BY절 등 ORDER BY절을 제외한 모든 곳에서 select절에서 생성한 alias를 활용할 수 없다. (서브쿼리 등을

hyehyeson.tistory.com

 

따라서 모두 정답 같지만,

마지막 4번은 유효하지 않습니다.

 

select 문의 컬럼 순서(위치) 를 ORDER BY절에서 사용할 수 있으나

select절에 2개의 컬럼만이 나타나므로

3번째 컬럼은 존재하지 않습니다. 

 

따라서 ORDER BY 3은 유효하지 않기 때문에

④ 번이 정답입니다. 

 

반응형