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 har 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
hisoblashda ular tashlab yuboriladi!
2. Agar ustundagi hamma 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 hisoblaydi 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 har 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 hollarda. COUNT(*) funksiyasiga umuman DISTINCT qo‗llab bo‗lmaydi, chunki u satrlar sonini hisoblaydi! Bitta 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 guruhlash
Agregat funksiyalar jadval uchun natijaviy satr hosil qiladi. Masalan: Buyurtma
o‗rtacha narxi qancha?
SELECT AVG(AMOUNT)
FROM ORDERS
Masalan, oraliq natijani topish lozim bo‗lsin. Bu holda guruhlanishli so‗rov
yordam beradi. Ya‘ni SELECT operatorining GROUP BY ifodasi. Avval GROUP
BY ifodasi qatnashgan quyidagi so‗rovni ko‗ramiz: Har bir xizmatchi uchun
buyurtma o‗rtacha narxi qancha?
Do'stlaringiz bilan baham: |