COUNT, SUM, AVG, MIN, MAX
087 daq
«Nechta talaba bor?», «o‘rtacha ball qancha?», «eng qimmat mahsulot narxi?» — bunday savollar ko‘p qatordan bitta son chiqaradi. Buning uchun agregat funksiyalar bor.
Beshta asosiy funksiya
| Funksiya | Nima qiladi |
|---|---|
COUNT(*) |
qatorlar soni |
SUM(ustun) |
yig‘indi |
AVG(ustun) |
o‘rtacha |
MIN(ustun) |
eng kichik |
MAX(ustun) |
eng katta |
WHERE bilan birga
Avval qatorlar tanlanadi, keyin hisoblanadi:
COUNT(*), COUNT(ustun) va COUNT(DISTINCT …)
COUNT(*)— hamma qatorlar;COUNT(phone)— faqatphonebo‘sh bo‘lmagan qatorlar;COUNT(DISTINCT city)— nechta har xil shahar.
Agregatlar NULL qiymatlarni hisobga olmaydi: AVG(scholarship) faqat stipendiya oladiganlar o‘rtachasini beradi.
Muhim qoida
Agregat va oddiy ustunni shunchaki yonma-yon yozib bo‘lmaydi:
SELECT city, COUNT(*) FROM students; -- xato!Baza qaysi city ni ko‘rsatishni bilmaydi — natija bitta qator, shahar esa ko‘p. Har bir shahar uchun alohida sanash kerak bo‘lsa — GROUP BY kerak. Bu keyingi dars.
Do‘konda jami nechta mahsulot bor va ularning o‘rtacha narxi qancha? Ikki ustun: soni va butun songacha yaxlitlangan o‘rtacha narx.
Yakunlangan (status = 'completed') safarlardan jami qancha tushum bo‘lgan (fare yig‘indisi)?
Esda qoldiring
COUNT,SUM,AVG,MIN,MAX— ko‘p qatordan bitta qiymat.- Agregatlar
NULLni tashlab ketadi;COUNT(*)esa hamma qatorni sanaydi. - Oddiy ustun va agregat birga kerak bo‘lsa —
GROUP BY.