본문 바로가기

[2021.04.21] Right Outer Join 오늘은 회사에서 일을 하다가 코드를 잘못 넣어서 단말 거래가 이상해질 뻔한 큰 실수를 메모하자. OUTER(외부) JOIN 이란 조인 조건에서 동일한 값이 없는 행도 반환할 때 사용하는 구문이다. 즉 A, B 테이블을 JOIN 할 경우, 조건에 맞지 않는 데이터도 표시하고 싶을 때 OUTER JOIN을 사용한다. RIGHT OUTER JOIN은 오른쪽 테이블의 것은 조건에 부합하지 않더라도 모두 결합되어야 한다는 의미이다. 즉, FROM 첫번째 테이블 RIGHT OUTER JOIN 두번째 테이블이라면, 두번째 테이블의 것은 모두 출력되어야 한다. 실제로 내가 실수할 뻔 했던 원장 테이블을 예시로 생각해보자. SELECT * FROM EEDADM.AEED_FFX_OINV_REG_BASE A, EEDADM...
[SQL] Weather Observation Station 19 POW (X) POWER (O)
[SQL] Weather Observation Station 18
[SQL] PIVOT pivot절을 EMP 테이블 그대로 걸어서 사용하면 전혀 다른 결과가 나온다. 피봇은 FROM 절에 걸어준 테이블의 모든 칼럼 중 PIVOT절에 기술한 칼럼을 제외하고 모두 GROUP BY 해버린다. 즉, GROUP BY 할 대상들만 서브쿼리 또는 WITH 절로 묶어서 추려낸 뒤에 PIVOT을 해주어야 한다. 위의 PIVOT의 성질을 잘 이해하면 활용도가 높다. WITH 절에 JOB 칼럼을 추가하면 아래와 같이 JOB 별로 세분화된 GROUP BY 결과를 볼 수 있다!! www.hackerrank.com/challenges/occupations/problem Occupations | HackerRank Pivot the Occupation column so the Name of each person in..
[SQL] ROW_NUMBER() RANK() DENSE_RANK() 기본적으로 ROWNUM 으로 시작을 한다. RANK() : 동일한 값이면 중복 순위를 부여, 다음 순위는 해당 갯수만큼 건너뛰고 반환 DENSE_RANK() : 동일한 값이면 중복 순위를 부여, 다음 순위는 중복 순위와 상관 없이 순차적으로 반환 ROW_NUMBER : 중복에 관계 없이 순차적으로 순위를 반환 ROW_NUMBER() PARTITION BY (COL1) ORDER BY (COL2) 파티션 별로 순위를 매기는 방법 : 부서별로 월급이 높은 순으로 출력을 하는 방법 RANK() OVER (PARTITION BY COL1 ORDER BY COL2) 중복된 SALARY인 경우 동일한 등수를 매기며 해당 갯수만큼 점프! DENSE_RANK() OVER (PARTITION BY COL1 ORDER B..
[SQL] 1주차 숙제
[SQLP] 'DECODE' 의 모든 것 DECODE 함수는 오라클 쿼리에서 가장 많이 사용하는 함수 중 하나이다. DECODE 함수는 프로그래밍에서의 if else 와 비슷한 기능을 수행한다. 간단한 사용방법은 아래와 같다. 아래와 같이 두가지 방법으로 사용이 가능하다. 1. DECODE(컬럼,조건,TRUE 결과값,FALSE 결과값) 2. DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3..........) 예시) WITH TEMP AS ( SELECT 'M' GENDER FROM DUAL UNION ALL SELECT 'F' GENDER FROM DUAL UNION ALL SELECT 'X' GENDER FROM DUAL ) SELECT GENDER , DECODE(GENDER, 'M', '남자', 'F', '여자', ..
[SQLP] DML 실행 순서 FROM - WHERE - GROUP BY - HAVING -SELECT - ORDER BY A. FROM 에서 가장 먼저 전체 테이블의 내용을 조회한다. B. WHERE 절에서는 FROM 절에서 읽어온 테이블에서 조건에 맞는 결과만 갖도록 데이터를 간추림 C. GROUP BY 절에서는 WHERE 조건으로 간추린 데이터를 선택한 칼럼으로 GROUPING 작업 D. GROUP BY 절을 사용하게 되면 해당 칼럼으로 그룹 함수를 사용할 수 있다. ( 그룹 함수에는 COUNT, MAX, MIN, AVG, SUM, VARIANCE, STDDEV 등이 있음 ) ( NULL 은 제어불가, 비교불가, 연산불가 ) → 제 비 연 → 무시한다 E. HAVING 절은 GROUP BY 된 이후 사용되는 조건절 ( 단, HA..