ROLLUP

Ushbu qo'llanmada siz bir nechta guruhlash to'plamlarini yaratish uchun PostgreSQL ROLLUP-dan qanday foydalanishni o'rganasiz.

PostgreSQL ROLLUP - bu GROUP BY bandining kichik bandi bo'lib, u bir nechta guruhlash to'plamlarini aniqlash uchun stenografiyani taklif qiladi. Guruhlash to'plami - bu siz guruhlaydigan ustunlar to'plami. Batafsil ma'lumot uchun guruhlash to'plamlari qo'llanmasini ko'rib chiqing.

CUBE kichik bandidan farqli o'laroq, ROLLUP belgilangan ustunlar asosida barcha mumkin bo'lgan guruhlash to'plamlarini yaratmaydi. Bu shunchaki ularning kichik to'plamini yaratadi.

ROLLUP kirish ustunlari orasidagi ierarxiyani qabul qiladi va ierarxiyani hisobga olgan holda mantiqiy bo'lgan barcha guruhlash to'plamlarini yaratadi. Shuning uchun ROLLUP ko'pincha hisobotlar uchun oraliq jamlamalar va umumiy jami yaratish uchun ishlatiladi.

Masalan, CUBE (c1,c2,c3) barcha mumkin bo'lgan sakkizta guruhlash to'plamini yaratadi:

(c1, c2, c3)
(c1, c2)
(c2, c3)
(c1,c3)
(c1)
(c2)
(c3)
()

Biroq, ROLLUP(c1,c2,c3) c1 > c2 > c3 ierarxiyasini quyidagi tarzda qabul qilib, faqat to'rtta guruhlash to'plamini hosil qiladi:

(c1, c2, c3)
(c1, c2)
(c1)
()

ROLLUP dan keng tarqalgan foydalanish ierarxiya yil > oy > sanani hisobga olgan holda yil, oy va sana boʻyicha maʼlumotlar yigʻindisini hisoblashdir.

Quyida PostgreSQL ROLLUP sintaksisi tasvirlangan:

Yaratilgan oraliqlar sonini kamaytirish uchun qisman yig'ish ham mumkin.

PostgreSQL ROLLUP misollari

Agar siz savdo jadvalini yaratmagan bo'lsangiz, quyidagi skriptdan foydalanishingiz mumkin:

Quyidagi so'rovda brend bo'yicha (jami jami) va barcha brendlar va segmentlar (jami) bo'yicha sotilgan mahsulotlar sonini topish uchun ROLLUP bandidan foydalaniladi

output

Chiqarishdan aniq ko'rinib turibdiki, uchinchi qatorda ABC brendining sotuvi, oltinchi qatorda XYZ brendining sotuvi ko'rsatilgan.Oxirgi qatorda barcha brendlar va segmentlar uchun umumiy summa ko'rsatilgan. Bu misolda ierarxiya brand > segment hisoblanadi.

Agar siz brend va segment tartibini o'zgartirsangiz, natija quyidagicha farq qiladi:

output

Bunday holda, ierarxiya segment > branddir.

Quyidagi bayonot qisman yig'ishni amalga oshiradi:

output

Namunaviy maʼlumotlar bazasidan quyidagi ijara jadvaliga qarang.

table

Quyidagi bayonot ROLLUP yordamida kunlik, oylik va yildagi ijaralar sonini topadi:

output

Ushbu qo'llanmada siz bir nechta guruhlash to'plamlarini yaratish uchun PostgreSQL ROLLUPdan qanday foydalanishni o'rgandingiz.

Last updated

Was this helpful?