• SELECT vend_id, COUNT(*) AS num_prods FROM Products WHERE prod_price >= 4 GROUP BY vend_id HAVING
  • HAVING va WHERE bandlari orasidagi farq




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

    HAVING va WHERE bandlari orasidagi farq
    Buni quyidagicha tushuntirish mumkin: WHERE bandi ma'lumotlarni guruhlashdan oldin qatorlarni filtrlaydi va HAVING bandi ma'lumotlar guruhlangandan keyin filtrlaydi. Bu muhim farq. WHERE bandi bilan chiqarib tashlangan qatorlar guruhga kiritilmaydi, aks holda bu hisoblangan qiymatlarni o'zgartirishi mumkin, bu esa o'z navbatida HAVING bandidagi guruh filtrlashiga ta'sir qilishi mumkin.
    Endi o‘ylab ko‘ring: bitta gapda WHERE bandini ham, HAVING bandini ham ishlatish mumkin? Albatta mumkin. Aytaylik, siz oxirgi 12 oy ichida ikki yoki undan ortiq buyurtma bergan barcha mijozlarning ismlarini qaytarish uchun oldingi bayonot filtrini yaxshilashni xohlaysiz. Bunga erishish uchun siz faqat oxirgi 12 oy ichida qilingan buyurtmalarni hisobga oladigan WHERE bandini qo'shishingiz mumkin. Keyin kamida ikkita qatorga ega bo'lgan guruhlarni filtrlash uchun HAVING bandini qo'shasiz.
    Buni yaxshiroq tushunish uchun quyidagi misolni ko'rib chiqaylik, unda har bir mahsulot uchun kamida 4 dollar yoki undan ko'proq narxda ikkita mahsulot taklif qiladigan barcha sotuvchilar ro'yxati keltirilgan.


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

    vend_id

    num_prods

    BRS01

    3

    FNG01


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




    Download 44,55 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    HAVING va WHERE bandlari orasidagi farq

    Download 44,55 Kb.