본문 바로가기
02_STUDY/SQLD

SQL 자격검정 실전문제 풀이 해설 노랭이 56번, 60번, 66번 (P.70,72,78)

by zestlumen 2023. 3. 30.

SQL 자격검정 실전문제 풀이 해설 노랭이 56번

② SQL 실행 순서에 의해 SELECT절 이후 ORDER BY절 수행

>> SELECT절에 기술되지 않은 년 칼럼 정렬 논리적으로 X

하지만 오라클 행 기반 데이터베이스이기 때문에 데이터 액세스 할 때 행 전체 칼럼을 메모리에 로드함.

이 같은 특성으로 SELECT절 기술되지 않은 칼럼 정렬 가능, 아래와 같은 SQL일 경우 정렬 X

이는 인라인 뷰 먼저 수행됨에 따라 더 이상 SELECT절 외 칼럼 사용 불가

 

  SELECT 지역, 매출금액

  FROM ( SELECT 지역, 매출금액

           FROM 지역별 매출 )

  ORDER BY 년 ASC;

 

 

③ 쿼리에 GROUP BY 지역 실행되는 순간 올클은 오로지 '지역'칼럼만 가짐 (그룹핑)

그러므로 ORDER BY에 '년'을 이해하지 못함 >> '지역'칼럼과 집계 함수만 쓸 수 있음

 

④ GROUP BY 문장 쓸 때 해당 칼럼의 COUNT(*), SUM, MAX, MIN 함수 사용 가능

ORDER BY 절에 사용될 수 있는 것은 기본적으로 GROUP BY 사용된 칼럼과

그룹 바이로 사용할 수 있는 함수들 올 수 있음.

 

*GROUP BY 절이 있으면 그 기준으로 ORDER BY 정렬됨.

GROUP BY절 사용으로 인해 SELECT절에만 있는 칼럼을 ORDER BY에 써야 함

(GROUP BY가 있으면 내부적으로 연산 후 데이터 셋을 만든 것 기준)

 

 

 

SQL 자격검정 실전문제 풀이 해설 노랭이 60번

SQL Server의 TOP N 질의문에서 N에 해당 값 동일한 경우

함께 출력되도록 하는 WITH TIES 옵션을 ORDER BY절과 함께 사용

 

③ ROWNUM은 행의 개수 제한하는데 ORDER BY 절 관계없이 먼저 수행되기 때문에

랜덤 3개 뽑은 후, 뽑은 3개를 승리 기준 건수 내림차순 정렬

(TOP과 같은 기능 위해선 FROM절 인라인 뷰 필요,

ROWNUM 함수는 먼저 순번 매기고 ORDER BY 정렬해서 뒤죽박죽 순번이 되어서 나옴)

 

 

 

SQL 자격검정 실전문제 풀이 해설 노랭이 66번

① #custId#는 그냥 변수라고 생각

서브쿼리에 X. 콘텐츠ID = B. 콘텐츠ID 조건 필요

② RIGHT OUTER JOIN 비선호컨텐츠ID 는 비선호컨텐츠가 기준

③ D. 컨텐츠ID IS NULL 은 비선호컨텐츠ID 제외 의미

④ NOT EXISTS () 단 하나의 컨텐츠라도 비선호 등록한 고객에 대해서는 모든 컨텐츠가 추천에서 배재됨

 

 

 

작성일시 2021-11-27 03:23:40