83
SALESREPS', CUST_REP FROM CUSTOMERS GROUP BY
CUST_REP
Bu yerda 'CUSTOMERS FOR SALESREPS' psevodomaydonning
ishlatilishiga e‟tibortbering. So„rov natijalarini bir nechta ustun bo„yicha
guruxlash mumkin. Masalan, quyidagicha:
Xar bir xizmatchi uchun xar bir klient bo„yicha buyurtmalar umumiy
sonini xisoblash.
SELECT REP, CUST, SUM(AMOUNT) FROM ORDERS GROUP
BY REP, CUST
Lekin ikki ustun bo„yicha guruxlashda natijalar ikki darajasiga ega
guruxlar va ostki guruxlar yaratish mumkin emas. Lekin tartiblashni
qo„llash mumkin. SHu bilan birga GROUP BY ishlatilganda so„rov
natijalari avtomatik tartiblanadi.
Quyidagi so„rovni ko„ramiz:
Xar bir xizmatchi uchun xar bir klient bo„yicha buyurtmalar umumiy
sonini xisoblash; so„rov natijalarini klientlar va xizmatchilar bo„yicha
tartiblash.
SELECT REP, CUST, SUM(AMOUNT) FROM ORDERS GROUP
BY REP, CUST ORDER BY REP, CUST
Shunday qilib GROUP BY ifodasi SELECT ni guruxlarni qayta
ishlashga majbur qiladi. MS SQL serverida COMPUTE
ifodasi mavjud
bo„lib relyasion so„rovlar asoslariga zid keladi. Lekin uning yordamida
saqlanuvchi
protseduralardan
foydalanmasdan
shunga
o„xshash
natijalarni olish mumkin. Ruruxlanishli so„rovlar
uchun chegaralar
mavjud. Satrlarni xisoblanuvchi ifoda asosida guruxlash mumkin emas.
Qaytarilao„tgan qiymatlar elementlariga xam chegaralar mavjud.
Qaytariluvchi ustun bo„lishi mumkin:
Konstantalar.
A. Guruxga kirgan xamma satrlar uchun bitta qiymat qaytaruvchi
agregat funksiya.
B. Gurux xamma satrlarida bir xil qiymatga ega guruxlash ustuni.
C. Ko„rsatilgan elementlarni o„z ichiga oluvchi ifoda.
Odatda guruxlanishli so„rovlar qaytaruvchi
ustunlarga guruxlash
ustuni va agregat funksiya kiradi. Agar agregat ko„rsatilmasa GROUP
BY dan foydalanmasdan DISTINCT ifodasidan foydalanish etarli. Agar
so„rovga guruxlash ustuni qo„shilmasa, u
yoki bu satr qaysi guruxga
tegishliligini aniqlash mumkin emas. Shu kabi SQL92 guruxlanishli
84
so„rovlarni taxlil qilishda birlamchi va ikkilamchi kalitlar xaqidagi
ma‟lumot ishlatilmaydi. Har bir xizmatchi uchun buyurtmalar umumiy
sonini hisoblash.
Do'stlaringiz bilan baham: