Sum (ifoda) distinct ustun avg (ifoda) distinct ustun nomi


Download 14.37 Kb.
Sana26.10.2023
Hajmi14.37 Kb.
#1723521
Bog'liq
11 ma’ruza Sqlda jarayonlar va standart funksiyalar hozir org


xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
11- maruza. SQLda jarayonlar va standart funksiyalar


Reja:

  1. SQL tilida agregat funksiyalar

  2. Agregat funksiyalar argumentlari

  3. Standart funksiyalar orqali sozi va undan foydalanib ikki nusxadagi satrlarni olumotlarni guruhlash

Tayanch soliq funksiyalar.
Agregat funksiyalar qolib, bitta qiymat qaytaradi. Bu funksiyalarni ko Ustundagi xamma qiymatlar summasini hisoblaydi.

  • AVG() rtachasining qiymatini hisoblaydi.

  • MIN() Ustundagi xamma qiymatlar eng kattasini aniqlaydi.

  • COUNT() Sorinishi:
    SUM (ifoda) DISTINCT ustun

    Agregatlash argumenti borovda: Sizni kompaniyangizda reja bajarilishi ortacha foizi qancha?
    SELECT AVG(100*(SALES/QUOTA)) as PROCENT FROM SALESREPS
    Bu holda ustun nomi maramiz. SUM() funksiyasini qolishi kerak! Masalan, quyidagicha: Kompaniya xizmatchilari sotuvlar xajmi rejadagi va xaqiqiy oramiz. Masalan: "ACI" ishlab chiqaruvchi mollari oramiz. Bu funksiyalar sonli ustunlar, sanalar va satrli ollanishi sonlar bilan ishlash.
    Masalan quyidagi sop va kam sotuvlar xajmi qancha?
    SELECT MIN(QUOTA), MAX(QUOTA) FROM SALESREPS
    Bu sonlarni orov beramiz: Bazadagi buyurtmalarning ichida eng oldin berilgan sollanadi. Bu funksiya son qiymat qaytaradi. Masalan: Kompaniyamiz mijozlari soni nechta?

    SELECT COUNT(CUST_NUM) FROM CUSTOMERS


    Yana bir soi bilan bajardi?
    SELECT COUNT(NAME) FROM SALESREPS WHERE SALES > QUOTA
    COUNT(*) funksiyasi qiymatlar sonini emas, satrlar sonini hisoblaydi. Quyidagicha yozish mumkin:
    SELECT COUNT(*) FROM ORDERS WHERE AMOUNT > 250
    NULL qiymat va agregat funksiyalar.
    Ustun qiymati NULL bora "agregat funksiyalar NULL qiymatni erov korovdagi qiymatlar xar xil. CHunki QUOTA maydoni- NULL qiymatni orinishda botiborga olmaydi, COUNT(*) botiborga olmaydi, lekin
    AVG(), SUM() - NULL qiymat mavjud borov:
    SELECT SUM(SALES), SUM(QUOTA), (SUM(SALES) -
    SUM(QUOTA)), (SUM(SALES - QUOTA)) FROM SALESREPS (SUM(SALES)-SUM(QUOTA)) va (SUM(SALES-QUOTA)) ifodalari agar QUOTA, maydoni NULL qiymatga ega boni ifoda SUM(ustun qiymati - NULL) Yana NULL qaytaradi!
    Shunday qilib:

    1. Agar ustundagi qiymatlardan biri NULL ga teng bolsa, AVG(), SUM(), MIN(), MAX() funksiyalari NULL qaytaradi! Funksiya COUNT() nol qaytaradi!

    2. Agar ustunda qiymatlar boni ustun boqligiga boglmasa, bu funksiya nol qaytaradi!

    3. DISTINCT funksiyasini agregat funksiyalar bilan birga ishlatish mumkin.

    Masalan quyidagi solishi mumkin, ifoda argument bonosi yollab borovda DISTINCT faqat bir marta qollanilsa, boshqa argument bilan qolumotlarni guruhlash.

    Agregat funksiyalar jadval uchun natijaviy satr xosil qiladi. Masalan: Buyurtma olsin. Bu holda guruhlanishli soni SELECT operatorining GROUP BY ifodasi. Avval GROUP BY ifodasi qatnashgan quyidagi soramiz: Xar bir xizmatchi uchun buyurtma oni REP maydonning xamma qiymatlari guruhlarga ajratiladi va xar bir guruh uchun AVG(AMOUNT) ifodasi hisoblanadi. Yarovlar xar bir xizmatchaga bittadan guruhga ajratiladi. Xar bir guruhda REP maydoni bir xil qiymatga ega. Xar bir guruh uchun guruhga kiruvchi xamma satrlar borta qiymati hisoblanadi va bitta natijaviy satr xosil qilinadi. Bu qator guruh uchun REP ustuni qiymati vash u guruh uchun sorta qiymatini ollanilgan soROV " deb ataladi! SHu ifodadan keyin kelgan ustun "guruhlash ustuni " deyiladi. Yana bir necha guruhlanishli sorib chiqamiz. Xar bir ofis uchun sotuvlarning rejalashtirilgan xajmi diapazoni qancha?
    SELECT REP_OFFICE, MIN(QUOTA), MAX(QUOTA) FROM SALESREPS GROUP BY REP_OFFICE
    Yana bir sorov: Xar bir xizmatchi nechta mijozga xizmat kotibortbering. Soyicha guruhlash mumkin. Masalan, quyidagicha:
    Har bir xizmatchi uchun xar bir klient boyicha guruhlashda natijalar ikki darajasiga ega guruhlar va ostki guruhlar yaratish mumkin emas. Lekin tartiblashni qorov natijalari avtomatik tartiblanadi.
    Quyidagi soramiz: Har bir xizmatchi uchun xar bir klient borov natijalarini klientlar va xizmatchilar bolib relyasion soxshash natijalarni olish mumkin. Ruruxlanishli sotgan qiymatlar elementlariga xam chegaralar mavjud. Qaytariluvchi ustun borsatilgan elementlarni orovlar qaytaruvchi ustunlarga guruhlash ustuni va agregat funksiya kiradi. Agar agregat korovga guruhlash ustuni qorovlarni taxlil qilishda birlamchi va ikkilamchi kalitlar xaqidagi malsa qaysi guruhga tegishli boyicha satrlarni ajratish uchun WHERE ifodasidan foydalangan edik. Shart borovni kortacha narxi qanchaga teng?
    SELECT REP, AVG(AMOUNT) FROM ORDERS GROUP BY REP HAVING SUM(AMOUNT) > 300
    Koon boplamdan chiqariladi. Agar rost boplamga kiradi! Yana bir misol koz funksiyalarini bajaradilar. Shunga eshilgan jadval satrlarlari ofislar boramiz: Xar bir tovar nomi uchun narxi, ombordagi soni va buyurtma berilganlar umumiy sonini kop boshimcha chegaralar mavjuddir. Bu ifoda juda boz ichiga olishi kerak. Chunki WHERE aloxida satrlarga HAVING satrlar guruhlariga qoxshab quyidagi qoida olsa satrlar guruhi tashlab yuboriladi. HAVING ifodasini GROUP BYsiz qollanadi.

    Nazorat savollari


    1. Agregat funksiyalar qorov yozing.

    2. Having bilan Whereni farqlarini keltiring.

    http://hozir.org

    Download 14.37 Kb.

    Do'stlaringiz bilan baham:




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