SELECT SUM(SALES), SUM(QUOTA), (SUM(SALES) - SUM(QUOTA)), (SUM(SALES - QUOTA))
FROM SALESREPS
(SUM(SALES)-SUM(QUOTA)) va (SUM(SALES-QUOTA)) ifodalari agar QUOTA, maydoni NULL qiymatga ega bo‘lsa xar xil qiymat qaytaradi. YA’ni ifoda SUM(ustun qiymati - NULL) YAna NULL qaytaradi!
SHunday qilib:
1. Agar ustundagi qiymatlardan biri NULL ga teng bo‘lsa, funksiya natijasini xisoblashda ular tashlab yuboriladi!
2. Agar ustundagi xamma qiymatlar NULL ga teng bo‘lsa, AVG(), SUM(), MIN(), MAX() funksiyalari NULL qaytaradi! Funksiya COUNT() nolь qaytaradi!
3. Agar ustunda qiymatlar bo‘lmasa (ya’ni ustun bo‘sh), AVG(), SUM(), MIN(), MAX() funksiyalari NULL qaytaradi! Funksiya COUNT()nolь qaytaradi!
4. Funksiya COUNT(*) satrlar sonini xisoblaydi va ustunda NULL qiymat bor yo‘qligiga bog‘liq emas! Agar ustunda satrlar bo‘lmasa, bu funksiya nol qaytaradi!
5. DISTINCT funksiyasini agregat funksiyalar bilan birga ishlatish mumkin. Masalan quyidagi so‘rovlarda:
1. Kompaniyamizda qancha xar xil raportlar nomlari mavjud?
SELECT COUNT(DISTINCT TITLE)
FROM SALESREPS
DISTINCT va agregatlar ishlashda quyidagi qoidalar mavjud. Agar siz DISTINCT va agregat funksiyani ishlatsangiz uning argumenti faqat ustun nomi bo‘lishi mumkin, ifoda argument bo‘lolmaydi. MIN(), MAX() funksiyalarida DISTINCT ishlatish ma’nosi yo‘q! COUNT() funksiyasida DISTINCT ishlatiladi, lekin kam xollarda. COUNT(*) funksiyasiga umuman DISTINCT qo‘llab bo‘lmaydi, chunki u satrlar sonini xisoblaydi! Bita so‘rovda DISTINCT faqat bir marta qo‘llanishi mumkin! Agarda u agregat funksiya argumenti sifatida qo‘llanilsa,boshqa argument Bilan qo‘llash mumkin emas!
Agregatlar va ma’lumotlarni guruxlash
Agregat funksiyalar jadval uchun natijaviy satr xosil qiladi. Masalan: Buyurtma o‘rtacha narxi qancha?
SELECT AVG(AMOUNT)
FROM ORDERS
Masalan, oraliq natijani topish lozim bo‘lsin. Bu holda guruxlanishli so‘rov yordam beradi. YA’ni SELECT operatorining GROUP BY ifodasi. Avval GROUP BY ifodasi qatnashgan quyidagi so‘rovni ko‘ramiz: Xaar bir xizmatchi uchsun buyurtma o‘rtacha narxi qancha?
Do'stlaringiz bilan baham: |