SQL - 데이터 분석 함수 2
1. 데이터를 누적해서 합계하는 데이터 분석 함수 ( SUM_OVER ) SUM( 컬럼명 ) OVER ( order by 컬럼명 desc or asc ) 예제: 사원번호, 이름, 월급, 월급의 누적치를 출력하기 select empno, ename, sal, sum(sal) over ( order by empno asc) 누적치 from emp; 맨 오른쪽에 누적치가 점점 쌓이는 것을 확인. over가 보이면 감이 올 것이다.물론 다른 함수들과 마찬가지로 partition by를 사용할 수 있다. 예제: 직업, 월급, 직업별 총합 누적치를 출력하기 select job, ename, sal, sum(sal) over ( partition by job order by ename ) 누적치 from emp; 2..
SQL - 컬럼을 ROW로 출력하기
1. COLUMN을 ROW로 출력하는 방법 1 ( SUM + DECODE ) 일단 먼저, emp 테이블의 부서번호 (deptno) 별로 월급의 총합을 확인하고 싶다고 가정하자. select deptno, sum(sal) from emp group by deptno order by deptno; 이것을 가로로 출력해야하면 어떻게 할까? 이전에 배운 DECODE 함수를 활용해야 한다. DECODE ( 컬럼명, 조건1, 출력 1, 조건2, 출력 2, 그 외 출력 3 ) 으로 실행되는데, 예제로 select decode( deptno, 10, sal , 0 ) from emp; 를 실행해보자 이렇게하면 부서 번호가 10인 경우만 sal(월급) 이 출력되고 나머지 20, 30 같은 경우는 0이 출력된 것을 볼 수..
SQL - 데이터 분석 함수 1
데이터 분석 함수 : 데이터 분석을 용이하게 하기 위해서 제공하는 함수 1. 순위를 출력하는 함수 1( RANK ) 예제: 이름, 월급, 월급에 대한 순위를 출력하기 select ename, sal, rank() over ( order by sal desc) as 순위 from emp; 예제 : 직업, 이름, 월급, 순위를 출력하는데 [[직업별로]] 각각 월급이 높은 순서대로 순위를 출력하기 select job, ename, sal, rank() over ( order by sal desc ) as 순위 from emp group by job; -- GROUP BY 표현식이 아닙니다 ㅠ rank 함수에는 group by 말고 partition by 를 사용해야 한다. select job, ename, s..
SQL - nvl 함수 + SQL의 IF문 구현하기
null 값 대신에 다른 값을 출력하고 싶을 때 사용하는 함수( nvl 함수) nvl( 컬럼명, null 대신 출력할 값 ) select ename, comm select ename, nvl(to_char(comm),'no comm') from emp; from emp;-- emp 테이블의 사원과 커미션을 확인 if 문을 SQL로 구현할 때 사용하는 함수 1 (decode 함수) if 문 : 만약에 무슨일이 벌어지면 어떻게 행동하라고 컴퓨터 프로그래밍을 하는것 decode( 컬럼명, 조건1, 출력1, 조건2, 출력2, [그 밖의 경우] 출력 3 ) 예제 : 부서번호가 10이면 5600을 출력하고 20이면 4500을 출력하고 나머지 부서번호는 0을 출력하기select ename, sal, deptno, d..
SQL - 단일 변환 함수
문자형으로 데이터 유형 변환하기 ( TO_CHAR ) 숫자형 -->> 문자형으로 변환,날짜형 -->> 문자형으로 변환할 때 사용하는 함수 예제 : 오늘이 무슨 요일인지 출력select sysdate from dual; select to_char(sysdate, 'day') from dual; * 날짜형식년도 : RRRR, YYYY, RR, YY월 : MM, MON일 : DD시간 : HH, HH24분 : MI초 : SS요일 : day, dy, d 예제 : 11월에 입사한 사원들 출력하기select ename, hiredate from emp where to_char(hiredate,'MM')='11'; 문자열을 날짜로 형 변환하는 함수 (to_date) 예제 :select to_date ('18700710..