6-modul · 6-dars: Grouping · Set ops · Views

Daraja: O'rta

Grouping · Set ops · Views. PostgreSQL bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Grouping · Set ops · Views tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya GROUP BY bir xil kalitli qatorlarni guruhlaydi; COUNT, SUM, AVG, MIN va MAX guruhga natija hisoblaydi. WHERE guruhlashdan oldingi qatorlarni, HAVING esa hisoblangan guruhlarni filtrlaydi. SELECTdagi agregatlanmagan ustun guruhlash qoidalariga mos bo'lishi kerak. COUNT(*) qatorlarni, COUNT(column) NULL bo'lmagan qiymatlarni sanaydi. UNION ikki mos ustunli natijani birlashtirib takrorni olib tashlaydi; UNION ALL takrorlarni saqlaydi va ko'pincha kamroq ish qiladi. INTERSECT umumiy qatorlarni, EXCEPT chapda bor, o'ngda yo'q qatorlarni oladi. Ustunlarning soni va turlari mos bo'lishi shart. Tartibni eng tashqi ORDER BY bilan belgilang. Oddiy VIEW saqlangan so'rovdir: uni o'qiganda bazaviy ma'lumotlarga murojaat qilinadi. MATERIALIZED VIEW natijani fizik saqlaydi, shuning uchun tez o'qiladi, ammo eski bo'lib qolishi mumkin. REFRESH MATERIALIZED VIEW uni yangilaydi. CONCURRENTLY varianti uchun talablarni, jumladan mos unique indexni tekshiring; view keshining yangilik darajasi biznes qarori.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/6-module%28database%29.md) [Rasmiy qo‘llanma](https://www.postgresql.org/docs/current/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

SELECT n % 2 AS guruh, count(*) AS soni
FROM generate_series(1, 8) AS n
WHERE n > 2 GROUP BY n % 2 HAVING count(*) >= 3;

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, nazariya, modul-06

Interaktiv ko'rinish (viktorina, izohlar, tarix)