본문 바로가기

공부/SQL

[liveSQL] 그룹함수 - ROLLUP (1) 외부 순서 2020/02/09 - [공부/SQL] - [liveSQL] 실행계획 확인 1. ROLLUP 인수 내부 순서 ROLLUP(A), B vs A, ROLLUP(B) vs ROLLUP(B), A vs B, ROLLUP(A) 2. 차이 확인 (1) ROLLUP(A), B = B, ROLLUP(A) (3) A, ROLLUP(B) = ROLLUP(B), A 3. 코드 참고 https://github.com/snrndi121/SQL_CODE_STUDY/blob/master/group/rollup.md#12-%EC%99%B8%EB%B6%80-%EC%88%9C%EC%84%9C 불러오는 중입니다...
[liveSQL] group by 사용 2020/02/09 - [공부/SQL] - [liveSQL] 실행계획 확인 1. 알아둘것 관계형 데이터 베이스에서는 데이터를 메모리에 올릴 때 행 단위의 모든 컬럼을 가져옴. group 사용시, 그룹핑 기준에 사용된 컬럼과 집계 함수에 사용될 수 있는 숫자형 데이터 컬럼들의 집합으로 결과 집합을새로 만듬. 따라서, 이전의 개별 데이터가 필요없어서 저장하지 않음(버림). [ select-group] 에서 select 절내에는 그룹핑 기준, 숫자 형식 컬럼의 집계 함수만 사용 가능. 이외의 문자 형식 컬럼은 정할 수 없음. 2. 의문 (1) order by upper(부서 이름) 가능? -> 그룹핑 기준으로 사용된 컬럼이라면 가능함. (2) 테이블의 별칭에 따른 실행계획 단계에서의 차이 -> 차이없음. 그러..
[liveSQL] order by 사용 2020/02/09 - [공부/SQL] - [liveSQL] 실행계획 확인 1. 알아야할 것 - order by 는 SQL 쿼리상 제일 마지막에 실행됨. - 데이터를 잘라내는 용도(where, having)가 아니라 정렬의 목적 - 기본 정렬값은 오름차순, 즉 표기하지 않아도됨. 2. 사용법 order by 컬럼 이름 order by 컬럼 별칭 order by 컬럼 순서 3. 의문 (1) "컬럼 순서의 의미" - 원본 Table 상의 컬럼 순서? - 현재 select 절 내에 컬럼 순서? - 결과 : select 절 내 정의된 컬럼의 순서 - 부연 설명 : order by 전에 실행되는 것이 select 절해석이고, 이 때 select 절 내 정의된 컬럼들에 대해서만 order by 처리가 됨. (2) ..
[liveSQL] 실행계획 확인 1. 과정 #part1. 설정 변경 alter session set statistics_level = all; #part2. 테스트 하고자 하는 쿼리문 select /* MY_QUERY */ EMPLOYEE_ID FROM EMPLOYEES WHERE EMPLOYEE_ID >= 100; #part3. 서버상에 기록된 쿼리문에 대한 실행계획 확인 select p.* from v$sql s, table ( dbms_xplan.display_cursor ( s.sql_id, s.child_number, 'ALLSTATS LAST' ) ) p where s.sql_text like '%MY_QUERY%' and s.sql_text not like '%not this%'; 2. Full code 3. 참고 (1) ..