= REP_OFFICE GROUP BY CITY HAVING COUNT(*) >= 2 Bu misolda WHERE va HAVING ifodalari o„z funksiyalarini
bajaradilar. Na shunga e‟tibor berish kerakki HAVING ifodasida agregat
funksiyalardan foydalaniladi, So„rov bajarilishini ko„ramiz:
OFFICES va SALESREPS jadvallari xizmatchi yashaydigan gshaxarni
topish uchun qo„shiladilar.
Qo„shilgan jadval satrlarlari ofislar bo„yicha guruxlanadilar.
Ikkidan kam satrga ega guruxlar tashlab yuboriladi. Ular HAVING
ifodasi talabiga javob bermaydilar. Xar bir gurux uchun xaqiqiy va
rejadagi sotuvlar xajmlari xisoblanadi. Murakkabroq misolni ko„ramiz:
Xar bir tovar nomi uchun narxi, ombordagi soni va buyurtma berilganlar
umumiy sonini ko„rsating, agar uning uchun buyurtma berilganlar
umumiy soni ombordagi umumiy soni 75 foizidan ko„p bo„lsa.
SELECT DESCRIPTION, PRICE, QTY_ON_HAND, SUM(QTY) FROM PRODUCTS, ORDERS WHERE MFR = MFR_ID GROUP BY MFR_ID, PRODUCT_ID, DESCRIPTION, PRICE, QTY_ON_HAND HAVING SUM(QTY) > (0.75 * QTY_ON_HAND) ORDER BY QTY_ON_HAND DESC HAVING uchung qo„shimcha chegaralar mavjuddir. Bu ifoda juda
bo„lmasa bita agregat funksiyani o„z ichiga olishi kerak. Chunki
WHERE aloxida satrlarga HAVING satrlar guruxlariga qo„llanadi.
NULL qiymat uchun WHERE ifodasiga o„xshab quyidagi qoida o„rinli
Agar izlash Sharti NULL qiymatga ega bo„lsa satrlar guruxi tashlab
yuboriladi. HAVING ifodasini GROUP BY siz qo„llash mumkin. Bu
xolda natija xamma satrlardan iborat gurux deb qaraladi, lekin amalda
bu kam qo„llanadi.
Nazorat savollari 1. Agregat funksiyalar qo„llanishiga misollar keltiring?
2. Guruxlash komandasi uchun so‟rov yozing.
3. Having bilan Where ni farqlarini keltiring.
4. Null qanday qiymat hisoblanadi?
5. Standart funksiyaga misollar keltiring?