AXV

GROUP BY va guruhlash

GROUP BY mohiyati, SELECT qoidasi, bir nechta ustun, WHERE va ORDER BY bilan birga

9-sinfBusiness Intelligence6-hafta · 17-dars

Bugun nimalarni o'rganamiz?

GROUP BY

Guruh = bitta qator

SELECT qoidasi

Eng ko'p xato

Kengaytirish

Ikki ustun, WHERE, ORDER BY

Takrorlash

COUNT(Chegirma) nimani sanaydi?

NULL sanalmaydi.
01

GROUP BY

Guruh = bitta qator

Guruhlash mexanizmi

Barchaqatorlar Shahar bo'yichasavatlar Har savatdahisob Savatga1 qator Guruh soni = natija qatorlari soni

Shaharlar bo'yicha sotuv


SELECT Shahar,
       COUNT(*)   AS SotuvSoni,
       SUM(Summa) AS Jami
FROM Sotuvlar
GROUP BY Shahar;
-- Toshkent  | 4 | 5380000
-- Samarqand | 3 | 9640000
-- Buxoro    | 3 | 3360000
  
Natijada 10 emas, 3 qator chiqadi — shaharlar soni qancha bo'lsa, shuncha qator. Qatorlar tartibi har xil bo'lishi mumkin.

Mini-test

GROUP BY Shahar natijasida nechta qator chiqadi (3 ta shahar bor)?

Har guruh uchun bitta qator.
02

SELECT qoidasi

Eng ko'p xato

SELECT qoidasi

Ustun bormi? Aggregatsiyaichida Yoki GROUPBY da Aks holda— xato Har ustun: funksiya ichida yoki GROUP BY da

Xato va to'g'ri so'rov


-- XATO: Summa guruhlanmagan va funksiyada emas
SELECT Shahar, Summa
FROM Sotuvlar
GROUP BY Shahar;

-- TO'G'RI
SELECT Shahar, SUM(Summa) AS Jami
FROM Sotuvlar
GROUP BY Shahar;
  
Xato xabaridagi ustun nomiga qarang: aynan o'sha ustunni aggregatsiyaga o'rang yoki GROUP BY ga qo'shing.

Mini-test

SELECT Shahar, Summa ... GROUP BY Shahar nega xato?

Har bir ustun funksiya ichida yoki GROUP BY da bo'lishi shart.
03

Kengaytirish

Ikki ustun, WHERE, ORDER BY

So'rov bajarilish tartibi

FROM WHERE GROUP BY SELECT,ORDER BY WHERE guruhlashdan oldin ishlaydi

Ikki ustun va tartib


SELECT Shahar, Kategoriya, SUM(Summa) AS Jami
FROM Sotuvlar
GROUP BY Shahar, Kategoriya
ORDER BY Shahar, Kategoriya;
-- 8 qator: Buxoro/Aksessuar 160000, Buxoro/Kompyuter 3200000, ...

SELECT Shahar, SUM(Summa) AS Jami
FROM Sotuvlar
WHERE Kategoriya = N'Aksessuar'
GROUP BY Shahar
ORDER BY Jami DESC;
-- Toshkent 280000 | Samarqand 240000 | Buxoro 160000
  
ORDER BY Jami DESC — eng katta yig'indidan boshlab: «reyting» hosil qilishning eng oddiy usuli.

Mini-test

Qaysi tartib to'g'ri?

WHERE guruhlashdan oldin bajariladi.

WHERE va GROUP BY

WHERE

Qatorlarni guruhlashdan oldin filtrlaydi
VS

GROUP BY

Qolgan qatorlarni guruhlarga ajratadi

Avval filtr, keyin guruhlash.

Atamalar. Bosing

GROUP BY

bosing

Qatorlarni ustun bo'yicha guruhlaydi

Guruh

bosing

Bir xil qiymatli qatorlar to'plami

Alias

bosing

AS bilan berilgan nom

ORDER BY

bosing

Natijani saralaydi

Guruhlash so'rovi

1. Ustunni tanlang

Nima bo'yicha guruhlaymiz?

2. Funksiyani yozing

SUM, COUNT, AVG.

3. Tekshiring

SELECT qoidasiga mos.

GROUP BY misollari

So'rovGuruhNatija qatori
GROUP BY ShaharShahar3
GROUP BY KategoriyaToifa3
GROUP BY Shahar, KategoriyaJuft8
GROUP BY SanaSana5
GuruhsizButun jadval1

Sotuvlar jadvali bo'yicha

Birinchi guruhlash

  1. Har bir shahar uchun sotuvlar sonini GROUP BY Shahar bilan hisoblang.
  2. SUM(Summa) ni qo'shing va ORDER BY bilan eng kattasini birinchi chiqaring.
  3. WHERE bilan faqat Aksessuar toifasini oling va natijani solishtiring.

Guruhlash


SELECT Shahar, Summa
FROM Sotuvlar
GROUP BY Shahar;
  

Guruhlash


SELECT Shahar, SUM(Summa) AS Jami
FROM Sotuvlar
GROUP BY Shahar;
  

Guruhlar raqamlarda

0
ta shahar — 3 guruh
0
ta shahar+toifa juftligi
0
ta qator guruhlanadi

Guruh soni = natija qatorlari soni.

Amaliy topshiriq 20 daqiqa

OsonShaharlar bo'yicha soni: Har bir shahar bo'yicha sotuvlar sonini chiqaring.
OsonToifalar bo'yicha jami: Har bir toifa bo'yicha jami summani hisoblang.
O'rtaEng ko'p sotgan shahar: Shaharlarni jami summa bo'yicha kamayish tartibida chiqaring.
O'rtaToifa statistikasi: Har bir toifa uchun sotuvlar soni, o'rtacha va eng katta summani chiqaring.
QiyinShahar va toifa: Shahar va toifa juftligi bo'yicha jami summani chiqaring, shahar va toifa bo'yicha saralang.
BonusChegirmalar shaharlar bo'yicha: Har bir shahar uchun nechta sotuvda chegirma borligini va chegirma yig'indisini toping.

Dars xulosasi

GROUP BY

Har guruh uchun bitta qator.

SELECT qoidasi

Ustun funksiyada yoki GROUP BY da.

Tartib

WHERE → GROUP BY → ORDER BY.

Uyga vazifa: GROUP BY: shahar va toifa bo'yicha hisobotlar.

Keyingi dars: HAVING

Guruhlarni filtrlash

6-hafta · 18-dars