본문 바로가기

✨ DBMS/etc14

[SQL] 분석함수(윈도함수) OVER( ), PARTITION BY, ORDER BY 분석함수(윈도함수)란? 특정 데이터 집합에 대해 계산을 수행하고 그 결과를 각 행에 출력하는 함수이다. OVER( PARTITION BY ORDER BY ) OVER를 사용하여 테이블 쭉 더하고 개수세서 조회 OVER는 SQL에서 사용되는 윈도우 함수와 함께 사용되는 절이다. OVER절은 윈도우 함수에 적용할 파티션과 정렬 순서를 지정하는데 사용된다. 현재 위 쿼리에서는 COUNT(HEIGHT) OVER( ORDER BY STUDNO) SUM(HEIGHT) OVER(ORDER BY STUDNO) 이 두개를 사용해서 COUNT는 누적으로 1개씩 갯수 증가, SUM은 이전 의 합에 누적해서 쌓아가는 것을 확인할 수 있다. PARTITION BY를 사용하여 분석함수 적용 PARTITION BY는 SQL에서 사.. 2023. 8. 2.
[SQL] 순위 함수 - RANK(), DENSE_RANK(), ROW_NUMBER() RANK() , DENSE_RANK(), ROW_NUMBER() HTML 삽입 미리보기할 수 없는 소스 RANK() OVER( ) 먼저 RANK에 대해 알아보자. RANK는 동일한 데이터는 같은 순위를 매긴다. SAL에 3000이 두개이므로, 공동 3위를 주고, 4위를 건너뛴 5위가 나온다. DENSE_RANK() OVER( ) 두번째로, DENSE_RANK는 RANK와 함께 동일 데이터를 같은 순위에 매긴다. 하지만, RANK에서는 공동 숫자만큼 다음 숫자를 넘겼지만, DENSE_RANK같은 경우, 숫자를 건너뛰지 않고 출력한다. ROW_NUMBER() OVER( ) 마지막으로, ROW_NUMBER는 중복 허용없이 순위가 나온다. 즉, 무조건 순위가 나오는 것이다. 2023. 8. 2.
[SQL/MySQL] 트랜잭션 COMMIT, ROLLBACK, SAVEPOINT 사용법 트랜잭션이란? 여러 개의 SQL 명령문들을 하나의 논리적인 작업 단위로 처리하는 것이다. 여러 명령어 집합이 정상적으로 처리되면 정상 종료하도록 하고, 여러 명령어 중 하나의 명령이라도 잘못되었다면 전체를 취소한다. 하나의 트랜잭션은 All - OR - Nothing 방식으로 처리된다. TCL (Transaction Control Language) 이며, Commit과 Rollback을 포함한다. 트랜잭션을 이름 그대로 번역한다면 "거래"라는 뜻이다. 즉, 데이터베이스에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 뜻이기도 한다. 누군가 물건을 산다고 가정했을때, 물건을 받고 돈을 주기까지 2단계의 과정을 거친다. 이때 누가 물건을 받았는데 돈을 주지 않았다면 먹튀가 발생한다. 따라서 이를 .. 2023. 8. 1.
[SQL] 서브 쿼리 - (인라인 뷰, 스칼라) - SELECT, FROM 인라인 뷰(Inline View)란? FROM절에 사용되는 서브 쿼리를 인라인 뷰(Inline View)라고 한다. 서브 쿼리가 FROM절에 사용되면 뷰처럼 결과가 동적으로 생성된 테이블로 사용가능하고, 임시적인 뷰이기 때문에 데이터베이스에 저장되지 않는다. ex) 모든 사원의 평균 급여보다 적게 받는 사원들과 같은 부서에서 근무하는 사원의 사번, 이름, 급여, 부서번호 여기 EMPLOYEES 테이블이 있다. 이 테이블과 비교할 똑같은 테이블로 평균 급여를 구하고, 부서번호를 구했다. 같은 EMPLOYEES에 조건에 해당하는 DEPARTMENT_ID를 조회했다. 그렇다면, 이 테이블은 평균 급여보다 적게받는 사원들의 사원 번호이므로, 이 테이블 그대로 EMPLOYEES 테이블과 조인하면 값이 나올 것이다.. 2023. 7. 31.