Agregat (yoki STATIK) funksiyalar, sonli yoki xisoblanuvchi ustunlar Bilan ishlaydi. Agregat funksiya argumenti butun ustun bo‘lib, bita qiymat qaytaradi.
Agregatlash argumenti bo‘lib ustun nomidan tashqari ixtiyoriy matematik ifoda xizmat qilishi mumkin. Misol uchun quyidagi so‘rovda: Sizni kompaniyangizda reja bajarilishi o‘rtacha protsenti qancha?
Select avg(100 * (sales/quota))
FROM SALESREPS
YAna bir shakl: Sizni kompaniyangizda reja bajarilishi o‘rtacha protsenti qancha? Select avg(100 * (sales/quota)) procent from salesreps
Bu xolda ustun nomi ma’noliroq, lekin bu asosiysi emas. Ustunlar summasini xisoblab ko‘ramiz. SUM() funksiyasini qo‘llaymiz, ustun sonli bo‘lishi kerak! Masalan, quyidagicha: Kompaniya xizmatchilari sotuvlar xajmi rejadagi va xaqiqiy o‘rta qiymati qanchaga teng?
Select sum(quota), sum(sales) from salesreps
AVG() agregatlash funksiyasiga yana bir necha sodda misollarni ko‘ramiz.
m
Masalan: "ACI" ishlab chiqaruvchi mollari o‘rtacha narxini xisoblang.
Select avg(price) from products where mfr_id = 'aci'
Ekstremumlarni topish funksiyalari yani MIN(), MAX() funksiyalarini ko‘ramiz.Bu funksiyalar sonli ustunlar, sanalar va satrli o‘zgaruvchilar Bilan ishlaydi. Eng soda qo‘llanishi sonlar bilan ishlash.
Masalan quyidagi so‘rov beramiz: Eng ko‘p va kam sotuvlar rejadagi xajmi?
8. Select min(quota), max(quota)
9. from salesreps
10. Bu sonlarni o‘z ichiga olgan ustunlardir. YAna bir so‘rov beramiz: Bazadagi buyurtmalarning ichida eng oldin berilgan so‘rov sanasi?
11. Select min(order_date)
12. from orders
13. Satrlar Bilan ishlaganda xar xil SQL serverlardagi kodirovkalar xar xil natija berishi mumkin. YOzuvlar sonini sanash uchun COUNT() qoTlanadi. Bu funksiya son qiymat qaytaradi
Masalan: Kompaniyamiz mijozlari soni nechta?
14. Select count(cust_num)
15. From customers
16. YAna bir so‘rov: Qancha xizmatchi rejani ortig‘i bilan bajardi?
Ustun qiymati NULL bo‘lsa AVG(), MIN(), MAX(), SUM(), COUNT() funksiyalari qanday qiymat qaytaradi? ANSI/ISO qoidalariga ko‘ra "agregat funksiyalar NULL qiymatni e’tiborga olmaydi"! Quyidagi so‘rov ko‘ramiz:
SELECT COUNT(*), COUNT (SALES), COUNT (QUOTA)
FROM SALESREPS
Jadval bita lekin so‘rovdagi qiymatlar xar xil. CHunki QUOTA maydoni- NULL qiymatni o‘z ichiga oladi. COUNT funksiyasi COUNT(maydon) ko‘rinishda bo‘lsa NULL qiymatni e’tiborga olmaydi, COUNT(*) bo‘lsa satrlar umumiy sonini xsoblaydi. MIN(), MAX() funksiyalari xam NULL qiymatni e’tiborga olmaydi, lekin AVG(), SUM() - NULL qiymat mavjud bo‘lsa chalkashtiradi. Masalan, quyidagi so‘rov: