61
Yana bir misol ko‗raylik: Ikki va undan ortiq xizmatchiga ega har bir
ofisning hamma xizmatchilari uchun rejadagi va haqiqiy sotuvlar umumiy
xajmini hisoblash.
SELECT CITY, SUM(QUOTA), SUM(SALESREPS.SALES)
FROM OFFICES, SALESREPS
WHERE OFFICE = REP_OFFICE
GROUP BY CITY
HAVING COUNT(*) >= 2
Bu misolda WHERE va HAVING ifodalari o‗z funktsiyalarini bajaradilar.
Yana shunga e‘tibor berish kerakki HAVING ifodasida agregat funktsiyalardan
foydalaniladi. So‗rov bajarilishini ko‗ramiz:
1.
OFFICES va SALESREPS jadvallari xizmatchi yashaydigan
shaharni topish uchun qo‗shiladilar.
2.
Qo‗shilgan jadval satrlarlari ofislar bo‗yicha guruhlanadilar.
3.
Ikkidan kam satrga ega guruhlar tashlab yuboriladi. Ular
HAVING ifodasi talabiga javob bermaydilar.
4.
Har bir guruh uchun haqiqiy va rejadagi sotuvlar xajmlari
hisoblanadi.
Murakkabroq misolni ko‗ramiz:
Har 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.
Do'stlaringiz bilan baham: