반응형

SQL 17

[SQL]분석함수(analytic function)_순위함수(RANK, DENSE_RANK, ROW_NUMBER)

순위 함수 * 순위 함수는 정렬 조건에 따른 순위를 반환한다. 순위 집계 함수는 가상의 행을 생성하지만, 순위 분석 함수는 실제의 행으로 값을 계산한다. | RANK 함수 RANK 함수는 order_by_clause에 따른 순위를 반환한다. expr이 동일하면 동순위를 부여하고, 다음 순위는 동순위의 개수만큼 건너뛴다. RANK() OVER([query_partition_clause] order_by_clause) ex ) SELECT empno, ename, sal, RANK() OVER(ORDER BY sal) AS c1 FROM emp WHERE deptno = 30 ORDER BY 3, 1; | DENSE_RANK 함수 DENSE_RANK 함수도 order_by_clause에 따른 순위를 반환한다..

SQL/분석함수 2020.09.19

[SQL]분석함수(analytic function)_통계함수(STDDEV, VARIANCE)

통계 함수 * 통계 함수는 통계에 관련된 값을 계산한다. | STDDEV 함수 STDDEV 함수는 expr의 표준편차를 반환한다. STDDEV ([DISTINCT | ALL] expr) OVER(analytic_clause) ex ) SELECT job, sal, STDDEV(sal) OVER(PARTITION BY job) AS c1 FROM emp WHERE deptno = 30 ORDER BY 2, 1; | VARIANCE 함수 VARIANCE 함수는 expr의 분산을 반환한다. VARIANCE([DISTINCT | ALL] expr) OVER(analytic_clause) ex ) SELECT job, sal, VARIANCE(sal) OVER(PARTITION BY job) AS c1 FROM ..

SQL/분석함수 2020.09.19

[SQL]분석함수(analytic function)_기본함수(COUNT, MIN, MAX, SUM, AVG)

기본 함수 기본 함수는 자주 사용하는 분석 함수다. 행의 개수, 최저, 최고, 합계, 평균 등을 반환한다. | COUNT 함수 COUNT 함수는 전체 행의 개수나 expr의 개수를 반환한다. COUNT({* | [DISTINCT | ALL] expr}) OVER(analytic_clause) ex ) SELECT job, COUNT(*) OVER(PARTITION BY job) AS c1 FROM emp WHERE deptno = 30 ORDER BY 1; | MIN 함수 MIN 함수는 expr의 최저 값을 반환한다. MIN(expr) OVER(analytic_clause) ex ) SELECT empno, sal, comm , MIN(comm) OVER(ORDER BY sal, empno ROWS UN..

SQL/분석함수 2020.09.19

[SQL]분석함수(analytic function)_분석함수에는 어떤 절이 사용가능할까?

분석함수에는 어떤 절이 사용가능할까? * 아래 표에서 WINDOWING 절과 KEEP 절을 사용할 수 있는 분석함수와 WITHIN GROUP 절을 사용하는 분석함수를 확인할 수 있다. 기본 함수 함수WINDOWINGKEEPWITHIN GROUP 함수 WINDOWING KEEP WITHIN GROUP COUNT Y Y MIN Y Y MAX Y Y SUM Y Y AVG Y Y 통계 함수 함수 WINDOWING KEEP WITHIN GROUP STDDEV Y Y VARIANCE Y Y 순위 함수 함수 WINDOWING KEEP WITHIN GROUP RANK DENSE_RANK ROW_NUMBER NTILE CUME_DIST PERCENT_RANK RATIO_TO_REPORT 분포함수 함수 WINDOWING ..

SQL/분석함수 2020.09.19

[SQL]분석함수(analytic function)_사용 시 주의사항

분석함수 사용 시 주의 사항 RANGE 방식에 value_expr을 지정하면 ORDER BY 절에 숫자 값이나 날짜 값을 사용해야한다. (문자 값을 사용하면 값을 계산할 수 없기 때문에 에러가 발생 한다) SELECT job, sal , SUM(sal) OVER(ORDER BY job RANGE 1 PRECEDING) AS c1 FROM emp WHERE deptno = 30; RANGE 방식에 value_expr을 지정하면 정렬 표현식을 1개만 사용할 수 있다. (다수의 정렬 표현식을 사용하면 에러가 발생한다) SELECT job, sal , SUM(sal) OVER(ORDER BY sal, comm RANGE 1 PRECEDING) AS c1 FROM emp WHERE deptno = 30; RAGN..

SQL/분석함수 2020.09.19

[SQL]분석함수(analytic function)_QUERY PARTITION절, ORDER BY절, WINDOWING절

1. 기본 문법 분석함수는 OVER 키워드를 사용한다. OVER 키워드에 ANALYTIC 절을 기술할 수 있다. analytic_function ( [ arguments ] ) OVER ( analytic_clause ) ANALYTIC 절은 QUERY PARTITION 절, ORDER BY 절, WINDOWING 절로 구성된다. [ query_partition_clause ] [order_by_clause [ windowing_clause ] ] 1.1 QUERY PARTITION 절 QUERY PARTITION 절은 파티션을 지정할 수 있으며, GROUP BY 절과 유사하게 동작한다. SELECT empno, job, sal ,① SUM(sal) OVER(PARTITION BY job) AS c1 ,..

SQL/분석함수 2020.09.19

[SQL]분석함수(analytic function)_집계함수와 분석함수 차이

분석함수(analytic function) 분석함수는 파티션과 윈도우로 값을 집계하며, 데이터집합을 변경하지 않고 값을 집계한다. 집계함수 VS 분석함수 집계함수는 분석함수와 달리 행 그룹으로 값을 집계하며, 행 그룹 별로 단일 행을 반환하기 때문에 데이터집합이 변경된다. 집계함수 아래 쿼리의 c1 열은 sal 합계, c2 열은 sal의 비율을 반환한다. 원본 값과 집계 값을 함께 분석하기 위해 emp 테이블을 2번 조회했다. SELECT a.empno, a.sal, b.sal AS c1, a.sal/b.sal AS c2 FROM emp a ,(SELECT deptno, SUM(sal) AS sal FROM emp GROUP BY deptno) b WHERE a.deptno = 10 AND b.deptn..

SQL/분석함수 2020.09.19
728x90
반응형