본문 바로가기
반응형

카테고리98

MYSQL - ROLLUP 함수로 소계, 합계 한 번에 조회하기 현업에서는 데이터베이스에서 데이터를 조회하여 엑셀 보고서를 작성해야 하는 경우가 많습니다. 특히 금융권 같은 경우 소계, 합계 같은 통계를 보고서에 녹여야 할 때가 많기 때문에 MYSQL의 ROLLUP 함수를 활용하여 데이터를 조회한다면 이런 작업에 소요되는 시간을 단축하는 데에 큰 작용할 수 있습니다. ROLLUP 함수란? MYSQL의 WITH ROLLUP 함수는 합계를 구할 때 사용합니다. GROUP BY 절을 함께 사용하여 소계 및 총계를 쉽게 구할 수 있습니다. 그리고 기존 데이터에 소계와 총계를 그룹별로 추가하여 보여주고 그룹핑한 컬럼은 NULL 값으로 채워서 보여줍니다. SELECT 그룹 컬럼, SUM(대상 컬럼) FROM 테이블명 GROUP BY 그룹 컬럼 WITH ROLLUP; SELECT.. 2023. 2. 26.
MYSQL - SUM, MAX, MIN, AVG, COUNT 집계함수 데이터 조회하기 MYSQL에는 SUM, MAX, MIN, AVG, COUNT 등 다양한 집계함수가 있습니다. MYSQL 8 버전에서는 이런 집계함수와 윈도우함수를 함께 사용하여 더 쉽고 편리하게 합계, 최대값, 최소값 등을 구할 수 있기 때문에 다양한 예제와 함께 알아보도록 하겠습니다. 기본 문법 윈도우함수 OVER는 GROUP BY와 비슷한 역할을 하지만 조회된 기존 데이터에 추가로 집계한 값을 보여준다는 점에서 더 효율적일 수 있습니다. SLELECT 집계함수(컬럼) OVER(PARTITION BY 그룹컬럼 ORDER BY 순서컬럼) 1. 집계함수 MAX() : 최대값, MIN : 최소값, SUM() : 합계, AVG : 평균, COUNT() : 개수 1) 그룹별 최대값 조회 SELECT ID, NAME, DEPT,.. 2023. 2. 25.
MYSQL - RANK / DENSE_RANK / ROW_NUMBER 함수로 순위 쉽게 구하기 MYSQL에서 지원하는 윈도우함수 중 RANK(), DENSE_RANK(), ROW_NUMBER() 함수를 사용하여 순위를 쉽게 구할 수 있습니다. MYSQL 5 버전까지만 해도 순위를 구하기 위해서 사용자 정의 변수를 활용하여 복잡하게 쿼리를 구성했어야 했는데, 8 버전 이상부터는 위의 3가지 함수를 활용하여 쉽게 순위를 구할 수 있게 되었습니다. 그럼 각각의 함수가 어떤 특징을 가지는지 알아보겠습니다. RANK / DENSE_RANK / ROW_NUMBER 함수 특징 ▶ RANK() RANK() 함수의 특징은 중복이 가능하며, 순위가 같은 행이 여러 행이 있을 경우 같은 순위의 수만큼 건너뛰고 다음 순위를 계산합니다. ▶ DENSE_RANK() DENSE_RANK() 함수의 특징은 중복이 가능하며, .. 2023. 2. 24.
MYSQL - 테이블 외래키(FOREIGN KEY) 추가, 삭제, 확인하기 외래키(FOREIGN KEY)는 두 테이블을 연결하는 역할을 하는 역할을 합니다. 외래키의 설정에 따라 외래키를 포함하는 테이블을 자식 테이블이라 하고 참조키의 값을 제공하는 테이블을 부모 테이블이라고 합니다. 그럼 테이블에 외래키를 설정하는 다양한 방법과 삭제, 확인 방법을 알아보겠습니다. 외래키 설정 방법 ※ 외래키를 제약 조건을 설정할 경우 참조되는 테이블(부모 테이블)의 필드는 반드시 UNIQUE나 PRIMARY KEY(기본키) 제약 조건이 설정되어 있어야 합니다. 1. 테이블 생성 시 외래키 설정(CREATE TABLE) CREATE TABLE (... FOREGIN KEY (필드명) REFERENCES 테이블명 (필드명) ...); # 부모 테이블 CREATE TABLE MAJOR ( ID I.. 2023. 2. 23.
반응형