본문 바로가기

IT/초보자를 위한 SQL 200제18

[50~59]SUM OVER, RATIO_TO_REPORT, CUBE, ROW_NUMBER, ROWNUM, Simple TOP-n Queries, EQUI JOIN, NON EQUI JOIN [50] 데이터 분석 함수로 누적 데이터 출력하기(SUM OVER) SELECT empno, ename, sal, SUM(SAL) OVER (ORDER BY empno ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) 누적치 FROM emp WHERE job in ('ANALYST', 'MANAGER'); --월급의 누적치를 출력 --OVER다음의 괄호 안에는 값을 누적할 윈도우를 지정할 수 있다. --ORDER BY empno를 통해 사원 번호를 오름차순으로 정렬을 하고 정렬된 것을 기준으로 월급의 누적치를 출력 --ROWS : 윈도우 기준 --윈도우 방식 : UNBOUNDED PRECEDING(맨 첫 번째 행을 가리킴), UNBOUNDED FOLLOWING(맨 .. 2022. 7. 20.
[40~49] COUNT, RAN, DENSE_RANK, NTILE, CUME_DIST, LISTAGG, LAG, LEAD, SUM+DECODE, PIVOT, UNPIVOT [40] 건수 출력하기(COUNT) select count(empno) from emp; -- 전체 사원수 출력 --count함수는 건수를 세는 함수 select count(comm) from emp; --null값은 count하지 않는다. [41] 데이터 분석 함수로 순위 출력하기(1)_(RAN) --직업이 ANALYST, MANAGER 인 사원들의 이름, 직업, 월급, 월급의 순위를 출력 select job, sal, ename, RANK() over (order by sal desc) 순위 from emp where job in ('ANALYST', 'MANAGER'); --RANK()는 순위를 출력하는 데이터 분석 함수이다. --RANK() 뒤에 OVER 다음에 나오는 괄호 안에 출력하고 싶은 데.. 2022. 7. 20.
[31~39] TO_DATE, 임시적 형변환, NVL, NVL2, DECODE, CASE, MAX, MIN, AVG, SUM [31] 날짜형으로 데이터 유형 변환하기(TO_DATE) select ename, hiredate from emp where hiredate = TO_DATE('1981/11/17', 'YY/MM/DD'); select ename, hiredate from emp where hiredate = TO_DATE('81/11/17', 'RR/MM/DD'); -- 현재 접속한 세션의 날짜 형식을 확인하는 쿼리 SELECT * FROM NLS_SESSION_PARAMETERS WHERE parameter = 'NLS_DATE_FORMAT'; -- 세션에 맞게 날짜 검색 select ename, hiredate from emp where hiredate = TO_DATE('81/11/17', 'RR/MM/DD');.. 2022. 7. 20.
[17,18, 19 SUBSTR, LENGTH, LENGTHB, INSTR] 특정 부분 출력 SELECT SUBSTR('SMITH', 1, 3) FROM DUAL; -- 첫번째부터 세번째 글자까지만 추출 SELECT ename, LENGTH(ename) FROM emp; -- 철자 개수를 출력 SELECT LENGTH('가나다라마바') FROM DUAL; -- 문자 길이만 출력 SELECT LENGTHB('가나다라마') FROM DUAL; -- 바이트의 길이를 반환 SELECT INSTR('SMITH', 'M') FROM DUAL; -- INSTR 함수는 문자에서 특정 철자의 위치를 출력하는 함수이다. 2022. 7. 11.