[PostgreSQL] group by: rollup

rollup์€ group by์˜ ๋ถ€๊ฐ€๊ธฐ๋Šฅ์œผ๋กœ, ์†Œ๊ณ„๋ฅผ ๊ตฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
๊ทผ๋ฐ ๋ญ ๊ทธ๋ฆฌ ์ž์ฃผ ์“ธ๋งŒํ•œ ๊ธฐ๋Šฅ์€ ์•„๋‹ˆ๋‹ค.

๊ทธ๋ฃนํ•ด์„œ aggreate ์—ฐ์‚ฐ์„ ํ•œ ๊ฒƒ์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ aggreate ์—ฐ์‚ฐ์„ ํ•˜๊ณ , ๊ทธ๊ฑธ ๋ณ„๊ฐœ์˜ ํ–‰์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

๊ฐ€๋ น, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ…Œ์ด๋ธ”๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„๋•Œ

์‚ฌ๋žŒ๋งˆ๋‹ค์˜ number ์ดํ•ฉ์„ ๊ตฌํ•œ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ €๊ธฐ์„œ ๋˜ ์‚ฌ๋žŒ๋งˆ๋‹ค sumํ•œ ๊ฐ’์„ ๋‹ค์‹œ ํ•ฉ์น˜๊ณ  ์‹ถ์œผ๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?
๊ทธ๋ฃน์„ ํ•œ๋ฒˆ ๋” ๊ฑฐ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ, rollup์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

rollup์€ ๋Œ€์ฒด๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทธ๋ฃน์กฐ๊ฑด์— rollup์„ ์”Œ์šฐ๋Š” ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

๊ทธ๋Ÿผ ์ง‘๊ณ„ํ•œ ๊ฐ’์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ์ง‘๊ณ„๋ฅผ ํ•œ ๊ฐ’์„ ์ƒˆ ํ–‰์œผ๋กœ ์ถ”๊ฐ€ํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.
์ง‘๊ณ„๊ฐ’ ์ด์™ธ์˜ ๋‚˜๋จธ์ง€๋Š” null๋กœ ์ฑ„์šด๋‹ค.

๊ทผ๋ฐ ์ด๊ฒŒ ์ข€... ์—‘์…€์Šค๋Ÿฌ์šด ๊ธฐ๋Šฅ์ด๋ผ ์ผ๋ฐ˜์ ์ธ ๋กœ์ง์„ ์ ์šฉํ•˜๊ธฐ์—” ์• ๋งคํ•œ ๋ถ€๋ถ„์ด ๋ณด์ธ๋‹ค.
๋ณ„๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์–ต์ง€๋กœ ํ–‰์— ์šฐ๊ฒจ๋„ฃ๋Š” ๊ฒƒ์ด๊ธฐ๋„ ํ•˜๊ณ .



์ฐธ์กฐ
https://dog-developers.tistory.com/152
https://www.postgresqltutorial.com/postgresql-rollup/
https://www.postgresql.org/docs/9.5/sql-select.html