728x90
320x100
SELECT WITH ROLLUP
WITH ROLLUP 수정자는 결과 집합에 최상위 요약을 나타내는 행을 추가합니다.
최상위 요약 열은 NULL 값으로 표시됩니다.
GROUP BY 열이 여러 개인 경우 서로 다른 열에 여러 개의 애그리게이트(요약/집계)가 추가됩니다.
LIMIT 절은 동시에 사용할 수 있으며, WITH ROLLUP 행이 추가된 후 적용됩니다.
WITH ROLLUP은 ORDER BY와 함께 사용할 수 없습니다.
GROUP BY 열에 ASC 또는 DESC 절을 사용하면 일부 정렬이 가능합니다.
항상 최상위 요약 행이 마지막에 추가됩니다.
이 예제에서는 다음 샘플 테이블을 사용합니다
CREATE TABLE booksales (
country VARCHAR(35), genre ENUM('fiction','non-fiction'), year YEAR, sales INT
);
INSERT INTO booksales VALUES
('Senegal','fiction',2014,12234), ('Senegal','fiction',2015,15647),
('Senegal','non-fiction',2014,64980), ('Senegal','non-fiction',2015,78901),
('Paraguay','fiction',2014,87970), ('Paraguay','fiction',2015,76940),
('Paraguay','non-fiction',2014,8760), ('Paraguay','non-fiction',2015,9030);
이 예제에서 WITH ROLLUP 수정자를 추가하면 두 연도를 모두 집계하는 추가 행이 추가됩니다:
예제1.
SELECT year, SUM(sales) FROM booksales GROUP BY year;
예제2.
SELECT year, SUM(sales) FROM booksales GROUP BY year WITH ROLLUP;
다음 예제에서는 genre, year, 또는 country 가 변경될 때마다 다른 최상위 요약 행이 추가됩니다:
예제3.
SELECT country, year, genre, SUM(sales)
FROM booksales
GROUP BY country, year, genre;
예제4.
SELECT country, year, genre, SUM(sales)
FROM booksales
GROUP BY country, year, genre
WITH ROLLUP;
롤업 후에 적용되는 LIMIT 조항:
예제5.
SELECT country, year, genre, SUM(sales)
FROM booksales
GROUP BY country, year, genre
WITH ROLLUP
LIMIT 4;
year 내림차순 정렬:
예제6.
SELECT country, year, genre, SUM(sales)
FROM booksales
GROUP BY country, year DESC, genre
WITH ROLLUP;
728x90
반응형
'MariaDB SQL' 카테고리의 다른 글
MariaDB 문자를 숫자로, 숫자를 문자로 변환 (0) | 2024.01.05 |
---|---|
MariaDB JOIN을 통한 UPDATE 실행 (0) | 2024.01.03 |
MariaDB LPAD (왼쪽 공백에 특정문자 채우기) (0) | 2023.10.25 |
MariaDB RPAD (왼쪽부터 자르거나, 오른쪽에 특정문자 채우기) (0) | 2023.10.17 |
Function 생성 스크립트 확인하기 (0) | 2023.08.09 |