SELECT REP_OFFICE, MIN(QUOTA), MAX(QUOTA) FROM SALESREPS GROUP BY REP_OFFICE
Yana bir so‘rov: Xar bir ofisda qancha xizmatchi ishlaydi?
SELECT REP_OFFICE, COUNT(*) FROM SALESREPS GROUP BY REP_OFFICE
Yana bir guruhlanishli qiziqarli so‘rov: Xar bir xizmatchi nechta mijozga xizmat ko‘rsatadi?
SELECT COUNT(DISTINCT CUST_NUM), 'CUSTOMERS FOR 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 guruhlash mumkin. Masalan, quyidagicha:
Har bir xizmatchi uchun xar bir klient bo‘yicha buyurtmalar umumiy sonini hisoblash.
SELECT REP, CUST, SUM(AMOUNT) FROM ORDERS GROUP BY REP, CUST
Lekin ikki ustun bo‘yicha guruhlashda natijalar ikki darajasiga ega guruhlar va ostki guruhlar yaratish mumkin emas. Lekin tartiblashni qo‘llash mumkin. SHu bilan birga GROUP BY ishlatilganda so‘rov natijalari avtomatik tartiblanadi.
Quyidagi so‘rovni ko‘ramiz: Har bir xizmatchi uchun xar bir klient bo‘yicha buyurtmalar umumiy sonini hisoblash; 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 guruhlarni 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 hisoblanuvchi ifoda asosida guruhlash mumkin emas. Qaytarilao‘tgan qiymatlar elementlariga xam chegaralar mavjud. Qaytariluvchi ustun bo‘lishi mumkin:
Konstantalar.
Guruhga kirgan xamma satrlar uchun bitta qiymat qaytaruvchi agregat funksiya.
Guruh xamma satrlarida bir xil qiymatga ega guruhlash ustuni.
Ko‘rsatilgan elementlarni o‘z ichiga oluvchi ifoda.
Odatda guruhlanishli so‘rovlar qaytaruvchi ustunlarga guruhlash ustuni va agregat funksiya kiradi. Agar agregat ko‘rsatilmasa GROUP BY dan foydalanmasdan DISTINCT ifodasidan foydalanish yetarli. Agar so‘rovga guruhlash ustuni qo‘shilmasa, u yoki bu satr qaysi guruhga tegishliligini aniqlash mumkin emas. Shu kabi SQL92 guruhlanishli so‘rovlarni taxlil qilishda birlamchi va ikkilamchi kalitlar xaqidagi ma’lumot ishlatilmaydi. Har bir xizmatchi uchun buyurtmalar umumiy sonini hisoblash.
Do'stlaringiz bilan baham: |