1-bob. Ma`lumotlar bazasining asosiy tushunchalari


SELECT EMPL_NUM, NAME, SUM(AMOUNT) FROM ORDERS, SALESREPS


Download 1.69 Mb.
bet56/80
Sana17.06.2023
Hajmi1.69 Mb.
#1542331
1   ...   52   53   54   55   56   57   58   59   ...   80
Bog'liq
ec613b75a51decaf6d60405d564c5683 MySQL po max

SELECT EMPL_NUM, NAME, SUM(AMOUNT) FROM ORDERS, SALESREPS


WHERE REP = EMPL_NUM GROUP BY EMPL_NUM, NAME

Yana soddaroq shakl: har bir xizmatchi uchun buyurtmalar umumiy sonini hisoblash:


SELECT NAME, SUM(AMOUNT) FROM ORDERS, SALESREPS WHERE REP = EMPL_NUM GROUP BY NAME


Agar guruhlash maydonlaridan birida NULL qiymat mavjud bo‘lsa qaysi guruhga tegishli bo‘ladi? WHERE ifodasida NULL va NULL tenglikka solishtirish natijasi yana NULL beradi. Shuning uchun ANSI/ISO standartida GROUP BY ifodasida NULL qiymatlar teng deb qabul qilingan.




Guruhlash va HAVING yordamida ajratish. Shart bo‘yicha satrlarni ajratish uchun WHERE ifodasidan foydalangan edik. Shart bo‘yicha guruhlarni ajratish uchun HAVING operatori mavjuddir. Uning sintaksisi WHERE operatori bilan bir xil va ulardan birgalikda foydalanigsh mumkin.
Quyidagi so‘rovni ko‘ramiz: buyurtmalar umumiy narxi $300 dan ortiq xizmatchilar uchun buyurtma o‘rtacha narxi qanchaga teng?

SELECT REP, AVG(AMOUNT) FROM ORDERS


GROUP BY REP

HAVING SUM(AMOUNT) > 300


Ko‘rinib turibdiki, HAVING SUM(AMOUNT) > 300 ifodasi satrlarni guruhlash sharti sifatida kelmoqda. Agar SUM(AMOUNT) > 300 sharti yolg‘on bo‘lsa, bu guruh natijaviy to‘plamdan chiqariladi. Agar rost bo‘lsa guruh natijaviy to‘plamga kiradi.
Yana bir misol ko‘raylik: ikki va undan ortiq xizmatchiga ega har bir ofisning hamma xizmatchilari uchun rejadagi va xaqiqiy sotuvlar umumiy hajmini 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 funksiyalarini bajaradilar. Yana shunga e’tibor berish kerakki HAVING ifodasida agregat funksiyalardan foydalaniladi. OFFICES va SALESREPS jadvallari xizmatchi yashaydigan gshaharni topish uchun qo‘shiladilar. Qo‘shilgan jadval satrlarlari ofislar bo‘yicha guruhlanadilar. Ikkidan kam satrga ega guruhlar tashlab yuboriladi. Ular HAVING ifodasi talabiga javob bermaydilar. Har bir guruh uchun xaqiqiy va rejadagi sotuvlar hajmlari 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.

Download 1.69 Mb.

Do'stlaringiz bilan baham:
1   ...   52   53   54   55   56   57   58   59   ...   80




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling