집 >데이터 베이스 >MySQL 튜토리얼 >롤업
롤업 함수는 집계 쿼리에서 소계와 총합계를 생성할 수 있는 강력한 SQL 도구입니다. 이 기능은 다양한 세부 수준에서 통합된 값을 계산해야 하는 보고서 및 분석에 특히 유용합니다.
롤업 함수는 GROUP BY 절과 함께 사용되어 계층적 그룹을 만듭니다. 쿼리 끝에 소계(부분합)와 총합을 나타내는 추가 행을 자동으로 추가합니다.
SELECT column1, column2, aggregation(column3) FROM table GROUP BY 롤업(column1, column2);
제품 및 해당 카테고리에 대한 정보가 포함된 위 코드에서 생성된 제품 테이블을 사용하여 작업해 보겠습니다.
카테고리별 그룹화만 쿼리하면 다음과 같은 결과가 나옵니다.
SELECT product_category, SUM(product_value) AS total FROM products GROUP BY product_category;
결과:
Category | Total |
---|---|
clothing | 40.48 |
food | 6.97 |
롤업 기능을 추가하여 소계와 총합계를 포함합니다.
SELECT CASE WHEN product_category IS NULL THEN 'Grand Total' ELSE product_category END AS category, SUM(product_value) AS total FROM products GROUP BY 롤업(product_category);
결과:
Category | Total |
---|---|
clothing | 40.48 |
food | 6.97 |
Grand Total | 47.45 |
더 나아가 여러 수준에서 소계를 계산할 수도 있습니다. 예를 들어 카테고리 및 제품별로 소계를 계산하려면 다음을 수행하세요.
SELECT CASE WHEN product_category IS NULL AND product_name IS NULL THEN 'Grand Total' WHEN product_name IS NULL THEN 'Subtotal - ' || product_category ELSE product_name END AS description, SUM(product_value) AS total FROM products GROUP BY 롤업(product_category, product_name);
결과:
Description | Total |
---|---|
T-shirt | 10.99 |
Shorts | 8.99 |
Shoes | 20.50 |
Subtotal - clothing | 40.48 |
Rice | 1.99 |
Popcorn | 0.99 |
Filet Steak | 3.99 |
Subtotal - food | 6.97 |
Grand Total | 47.45 |
롤업 기능은 복잡한 보고서 작성을 단순화하여 수동 조작의 필요성을 줄여줍니다. 이 기능은 Oracle, SQL Server, MySQL과 같은 많은 데이터베이스에서 지원됩니다. 이를 사용하면 쿼리를 더욱 효율적으로 만들고 보고서를 더욱 동적으로 만들 수 있습니다! ?
위 내용은 롤업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!