ROLLUP

์†Œ๊ณ„์™€ ์ด ํ•ฉ๊ณ„๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ฌธ

๊ธฐ๋ณธ ๋ฌธ๋ฒ•

SELECT
    select_list
FROM
    table_name
GROUP BY
    c1, c2, c3 WITH ROLLUP;
SELECT
    orderYear,
    productLine,
    SUM(orderValue) totalOrderValue
FROM
    sales
GROUP BY
    orderYear,
    productline
WITH ROLLUP;

GROUP์กฐ๊ฑด์ด ์—ฌ๋Ÿฌ๊ฐœ ์ผ๋•Œ

๊ณ„์ธต์ ์œผ๋กœ ๊ทธ๋ฃนํ™” ์„ธํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋ฉฐ, ๋‘๊ฐœ์˜ COLUMN์ด๋ผ๋ฉด C1์— ๋Œ€ํ•ด C2๋“ค์˜ ํ•ฉ์ด ์ถœ๋ ฅ๋˜๊ณ ๋‚˜์„œ C1์˜ ์ดํ•ฉ๋“ค์˜ ํ•ฉ์ด ์ถœ๋ ฅ๋œ๋‹ค.

์ถœ๋ ฅ๋  ๋•Œ, ํ•ฉ์˜ ๊ธฐ์ค€์ด ๋œ COLUMN๊ฐ’์€ NULL์ด ๋œ๋‹ค.

orderYearproductLinetotalOrderValue

2003

Classic Cars

5571.80

2003

Montorcycles

2240.50

2003

Planes

4825.44

2003

Ships

5072.71

2003

Trains

2770.95

2003

Trucks and Buses

3284.28

2003

Vintage Cars

4080.00

2003

NULL

28045.68

2004

Classic Cars

8124.98

2004

Montorcycles

2598.77

2004

Planes

2857.35

2004

Ships

4301.15

2004

Trains

4646.88

2004

Trucks and Buses

4615.64

2004

Vintage Cars

2819.28

2004

NULL

29964.05

NULL

NULL

58009.75

GROUPING()

NULL ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์ด ๋ถ€๋ถ„ํ•ฉ์ด๋‚˜ ์ดํ•ฉ์„ ๋‚˜ํƒ€๋‚ด๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜

๋ฌธ๋ฒ• ์˜ˆ์‹œ

SELECT
    orderYear,
    productLine,
    SUM(orderValue) totalOrderValue,
    GROUPING(orderYear),
    GROUPING(productLine)
FROM
    sales
GROUP BY
    orderYear,
    productline
WITH ROLLUP;
orderYearproductLinetotalOrderValueGROUPING(orderYear)GROUPING(orderYear)

2003

Classic Cars

5571.80

0

0

2003

Montorcycles

2240.50

0

0

2003

Planes

4825.44

0

0

2003

Ships

5072.71

0

0

2003

Trains

2770.95

0

0

2003

Trucks and Buses

3284.28

0

0

2003

Vintage Cars

4080.00

0

0

2003

NULL

28045.68

0

1

2004

Classic Cars

8124.98

0

0

2004

Montorcycles

2598.77

0

0

2004

Planes

2857.35

0

0

2004

Ships

4301.15

0

0

2004

Trains

4646.88

0

0

2004

Trucks and Buses

4615.64

0

0

2004

Vintage Cars

2819.28

0

0

2004

NULL

29964.05

0

1

NULL

NULL

58009.75

1

1

์ด๋Ÿฐ ํŠน์„ฑ์„ ์ด์šฉํ•ด IF์™€ ํ•ฉ์ณ์„œ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค

SELECT
    IF(GROUPING(orderYear),
        'All Years',
        orderYear) orderYear,
    IF(GROUPING(productLine),
        'All Product Lines',
        productLine) productLine,
    SUM(orderValue) totalOrderValue
FROM
    sales
GROUP BY
    orderYear ,
    productline
WITH ROLLUP;
orderYearproductLinetotalOrderValue

2003

Classic Cars

5571.80

2003

Montorcycles

2240.50

2003

Planes

4825.44

2003

Ships

5072.71

2003

Trains

2770.95

2003

Trucks and Buses

3284.28

2003

Vintage Cars

4080.00

2003

All Product Lines

28045.68

2004

Classic Cars

8124.98

2004

Montorcycles

2598.77

2004

Planes

2857.35

2004

Ships

4301.15

2004

Trains

4646.88

2004

Trucks and Buses

4615.64

2004

Vintage Cars

2819.28

2004

All Product Lines

29964.05

All Years

All Product Lines

58009.75

Last updated