SQL da GROUP BY Buyrug‘i
SQL tilida GROUP BY buyrug‘i ma'lumotlarni guruhlash uchun ishlatiladi. Bu buyruq aynan bir xil qiymatlarga ega yozuvlarni guruhlarga ajratib, har bir guruh bo‘yicha hisob-kitoblar (agregat funksiyalar) bajarish imkonini beradi.
GROUP BY ko‘pincha COUNT, SUM, AVG, MAX, MIN kabi agregat funksiyalar bilan ishlatiladi.
GROUP BY ning Asosiy Sintaksisi
ustun_nomi: Ma'lumotlar guruhlanadigan ustun.
agregat_funksiyalar: Har bir guruh bo‘yicha hisob-kitoblarni amalga oshiradigan funksiyalar (COUNT, SUM, AVG va boshqalar).
GROUP BY: Bir xil qiymatlarga ega yozuvlarni guruhlarga ajratadi.
GROUP BY ning Asosiy Xususiyatlari
Bir xil qiymatlarni guruhlash: Tanlangan ustun bo‘yicha qiymatlarni guruhlaydi.
Agregat funksiyalar bilan ishlash: Har bir guruh uchun hisob-kitob bajaradi.
Saralash mumkin: ORDER BY bilan birgalikda ishlatilsa, natijani saralash imkonini beradi.
WHERE sharti bilan filtrlangan yozuvlarni guruhlaydi.
Agregat Funksiyalar va GROUP BY
GROUP BY odatda quyidagi agregat funksiyalar bilan birga ishlatiladi:
COUNT – Guruhdagi yozuvlar sonini hisoblaydi.
SUM – Guruhdagi qiymatlarning yig‘indisini hisoblaydi.
AVG – Guruhdagi qiymatlarning o‘rtacha qiymatini topadi.
MAX – Guruhdagi eng katta qiymatni topadi.
MIN – Guruhdagi eng kichik qiymatni topadi.
GROUP BY bilan Misollar
Faraz qilaylik, bizda quyidagi mahsulotlar
jadvali mavjud:
1
Kompyuter
Elektronika
1500
2
Printer
Elektronika
300
3
Stol
Mebel
200
4
Kursi
Mebel
150
5
Televizor
Elektronika
1000
6
Stol Lampasi
Mebel
50
1. COUNT bilan GROUP BY
Vazifa: Har bir kategoriya bo‘yicha mahsulotlar sonini hisoblash.
SQL so‘rovi:
Natija:
Elektronika
3
Mebel
3
Izoh:
COUNT(*) har bir guruhdagi yozuvlar sonini hisoblaydi.
GROUP BY kategoriya har bir kategoriya bo‘yicha guruhlashni amalga oshiradi.
2. SUM bilan GROUP BY
Vazifa: Har bir kategoriya bo‘yicha mahsulotlarning umumiy narxini hisoblash.
SQL so‘rovi:
Natija:
Elektronika
2800
Mebel
400
Izoh:
SUM(narx) guruhdagi barcha mahsulotlarning narxini qo‘shadi.
3. AVG bilan GROUP BY
Vazifa: Har bir kategoriya bo‘yicha mahsulot narxlarining o‘rtacha qiymatini hisoblash.
SQL so‘rovi:
Natija:
Elektronika
933.33
Mebel
133.33
Izoh:
AVG(narx) har bir guruh bo‘yicha narxlarning o‘rtacha qiymatini hisoblaydi.
4. MAX va MIN bilan GROUP BY
Vazifa: Har bir kategoriya bo‘yicha eng katta va eng kichik narxlarni topish.
SQL so‘rovi:
Natija:
Elektronika
1500
300
Mebel
200
50
Izoh:
MAX(narx) guruhdagi eng katta qiymatni topadi.
MIN(narx) guruhdagi eng kichik qiymatni topadi.
5. WHERE va GROUP BY Birgalikda Ishlatish
Vazifa: Narxi 200 dan katta bo‘lgan mahsulotlarni guruhlash va ularning sonini hisoblash.
SQL so‘rovi:
Natija:
Elektronika
2
Izoh:
WHERE narx > 200 faqat narxi 200 dan katta bo‘lgan yozuvlarni tanlaydi.
GROUP BY kategoriya qolgan yozuvlarni guruhlarga ajratadi.
6. HAVING bilan GROUP BY
HAVING operatori GROUP BY bilan ishlatiladi va guruhlangan natijalarni filtrlash uchun ishlatiladi.
Vazifa: Har bir kategoriya bo‘yicha mahsulotlar sonini hisoblab, faqat 2 dan ortiq mahsulotga ega kategoriyalarni ko‘rsatish.
SQL so‘rovi:
Natija:
Elektronika
3
Mebel
3
Izoh:
HAVING COUNT(*) > 2 guruhlardan faqat 2 tadan ortiq mahsulotga ega bo‘lganlarini tanlaydi.
GROUP BY ning Afzalliklari
Guruhlash: Bir xil qiymatlarga ega yozuvlarni birlashtiradi.
Hisob-kitob imkoniyati: Agregat funksiyalar bilan birgalikda ishlaydi.
Moslashuvchan: WHERE va HAVING kabi operatorlar bilan ishlaydi.
Cheklovlari
WHERE sharti guruhlashdan oldin yozuvlarni filtrlaydi, HAVING esa guruhlangan natijalarni filtrlaydi.
NULL qiymatlar bir guruh sifatida ko‘riladi.
GROUP BY operatori bir xil qiymatlarga ega yozuvlarni guruhlarga ajratish uchun ishlatiladi.
Agregat funksiyalar (COUNT, SUM, AVG, MAX, MIN) bilan birgalikda ishlatiladi.
WHERE va HAVING operatorlari bilan birgalikda guruhlangan ma'lumotlarni yanada aniqroq boshqarish mumkin.
GROUP BY buyruqini tushunish orqali siz katta hajmdagi ma'lumotlar bazasi ustida samarali tahlillarni amalga oshirishirish mumkin. Ayniqsa tera bayt bazada judayam as qotadi.
Last updated