• BRS01 3 DLL01
  • Guruhlash va saralash GROUP BY va ORDER BY
  • ORDER BY GROUP BY
  • SELECT order_num, COUNT(*) AS items FROM OrderItems GROUP BY order_num HAVING COUNT(*) >= 3;
  • SELECT order_num, COUNT(*) AS items FROM OrderItems GROUP BY order_num HAVING COUNT(*) >= 3 ORDER BY
  • Quyi so’rovlar – boshqa sorovlar ichiga joylashtirilgan sorovlardir
  • Quyi sorovlar bilan filtrlash.
  • 10-mavzu. Sqlda murakkab so’rovlar yaratish. Bir necha jadvallarni birlashtirish, ‘join’ lar bilan ishlash




    Download 44,55 Kb.
    bet4/12
    Sana24.11.2023
    Hajmi44,55 Kb.
    #105026
    1   2   3   4   5   6   7   8   9   ...   12
    Bog'liq
    JSOON

    2

    SELECT vend_id, COUNT(*) AS num_prods FROM Products GROUP BY vend_id HAVING COUNT(*) >= 2;



    vend_id

    num_prods

    BRS01

    3

    DLL01

    4

    FNG01

    2


    Guruhlash va saralash
    GROUP BY va ORDER BY bandlari ba'zan bir xil natijalarga erishishi mumkin bo'lsa-da, juda farq qilishini tushunish muhimdir. 1-jadval buni tushunishga yordam beradi.



    ORDER BY

    GROUP BY

    Qabul qilingan natijalarni tartiblaydi

    Guruhlar qatorlari. Biroq, ko'rsatilgan natija guruhlash tartibiga mos kelmasligi mumkin

    Har qanday ustunlardan foydalanish mumkin (hatto SELECT bandida ko'rsatilmaganlaridan ham)

    Faqat ajratib olinadigan ustunlar yoki ifodalardan foydalanish mumkin; SELECT bandidagi har bir ifoda ko'rsatilishi kerak

    Majburiy emas

    Ustunlar (yoki ifodalar) xulosa funksiyalari bilan ishlatilsa, ishlatish majburiy

    SELECT order_num, COUNT(*) AS items FROM OrderItems GROUP BY order_num HAVING COUNT(*) >= 3;



    order num

    items

    20006

    3

    20007

    5

    20008

    5

    20009

    3

    Natijani buyurtma qilingan narsalar soni bo'yicha saralash uchun quyida ko'rsatilganidek, ORDER BY bandini qo'shish kifoya.




    SELECT order_num, COUNT(*) AS items FROM OrderItems GROUP BY order_num HAVING COUNT(*) >= 3 ORDER BY items, order_num;


    Quyi so'rovlar

    SELECT iboralari SQL so'rovlaridir. Biz hozirgacha ko'rib chiqqan barcha bayonotlar oddiy so'rovlar edi: alohida bayonotlar ma'lum jadvallardan ma'lumotlarni oladi.


    SQLda siz quyi so'rovlarni ham yaratishingiz mumkin. Quyi so’rovlar – boshqa so'rovlar ichiga joylashtirilgan so'rovlardir. Nima uchun pastki so'rovlarga ehtiyoj bor? Quyidagi bir nechta misollarni ko'rib chiqaylik.
    Eslatma. Agar siz MySQL bilan ishlayotgan bo'lsangiz, quyi so'rovlar MySQL tomonidan 4.1 versiyasidan beri qo'llab-quvvatlanishini unutmang. MySQL ning oldingi versiyalarida ushbu darsdagi misollar ishlamaydi.

    Quyi so'rovlar bilan filtrlash. Darslardagi misollarda ishlatiladigan ma'lumotlar bazasi jadvallari o'zaro bog'liqdir. Buyurtmalar ikkita jadvalda saqlanadi. Buyurtmalar jadvali har bir buyurtma uchun bitta qatorni o'z ichiga oladi; unda buyurtma raqami, mijoz identifikatori va buyurtma sanasi mavjud. Buyurtmalarning alohida elementlari OrderItems jadvalida saqlanadi. Buyurtmalar jadvalida mijozlar haqidagi ma'lumotlar mavjud emas. U faqat mijoz identifikatorini saqlaydi. Xaridor haqida ma'lumotlar mijozlar jadvalida joylashgan.
    Endi siz RGAN01 elementiga buyurtma bergan barcha mijozlar ro'yxatini olishni xohlaysiz deylik. Buning uchun quyidagilarni bajaring:
    1) RGAN01 bandini o'z ichiga olgan barcha buyurtmalar raqamlarini chiqarib oling;
    2) oldingi bosqichda sanab o'tilgan buyurtmalar bo'yicha amalga oshirilgan barcha mijozlarning identifikatorlarini olish;
    3) oldingi bosqichda identifikatorlari olingan barcha mijozlar to'g'risida ma'lumot olish.


    SELECT order_num FROM OrderItems WHERE prod_id ='RGAN.01 ’;
    order num
    20007
    20008

    Keyingi qadam 20007 va 20008 buyurtmalari bilan bog'langan mijoz identifikatorlarini olishdir. Oldingi darslardagi IN bandidan foydalanib, quyida ko'rsatilgan SELECT iborasini yaratishingiz mumkin.





    Download 44,55 Kb.
    1   2   3   4   5   6   7   8   9   ...   12




    Download 44,55 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    10-mavzu. Sqlda murakkab so’rovlar yaratish. Bir necha jadvallarni birlashtirish, ‘join’ lar bilan ishlash

    Download 44,55 Kb.