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. 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?
SELECT MIN(QUOTA), MAX(QUOTA FROM SALESREPS
Bu sonlarni o‘z ichiga olgan ustunlardir. YAna bir so‘rov beramiz: Bazadagi buyurtmalarning ichida eng oldin berilgan so‘rov sanasi?
SELECT MIN(ORDER_DATE) FROM ORDERS
Satrlar Bilan ishlaganda xar xil SQL serverlardagi kodirovkalar xar xil natija berishi mumkin. YOzuvlar sonini sanash uchun COUNT() qo‘llanadi. Bu funksiya son qiymat qaytaradi
Masalan: Kompaniyamiz mijozlari soni nechta?
SELECT COUNT(CUST_NUM) FROM CUSTOMERS
YAna bir so‘rov: Qancha xizmatchi rejani ortig‘i bilan bajardi?
SELECT COUNT(NAME FROM SALESREPS
WHERE SALES > QUOTA
COUNT(*) funksiyasi qiymatlar sonini emas, satrlar sonini xisoblaydi. Quyidagicha yozish mumkin:
SELECT COUNT(*)
FROM ORDERS
WHERE AMOUNT > 250
NULL qiymat va agregat funksiyalar
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:
Do'stlaringiz bilan baham: |