013. Subquery va EXISTS
Bu mavzuda ichma-ich so'rovlar, IN, EXISTS, ANY va ALL bo'yicha 40 ta masala bor. Har bir masala oldida qavs ichida sxema nomi va qiyinlik darajasi ko'rsatilgan. Sxemalar Sxemalar va tayyorlov sahifasida berilgan.
Masalani o'zingiz yechib, natijani Kutilgan natija bilan solishtiring. O'zgartiruvchi masalalarda (INSERT, UPDATE, DELETE, DDL) natija shartda aytilgan tekshiruv so'rovidan olingan. Natija 10 qatordan ko'p bo'lsa, birinchi 10 qator ko'rsatilgan.
1. (dokon, oson) O'rtacha narxdan qimmat mahsulotlar nomini chiqaring.
Kutilgan natija
2. (dokon, oson) Eng qimmat mahsulotning nomini chiqaring (subquery).
3. (dokon, oson) Buyurtma bergan mijozlar ismini IN bilan chiqaring.
Kutilgan natija
4. (dokon, oson) Buyurtma bermagan mijozlar sonini NOT IN bilan chiqaring.
5. (dokon, oson) Sotilgan mahsulotlar nomini EXISTS bilan chiqaring (birinchi 10).
Kutilgan natija
6. (dokon, oson) To'lovi bo'lmagan buyurtmalar sonini NOT EXISTS bilan chiqaring.
7. (dokon, o'rta) O'z kategoriyasining o'rtacha narxidan qimmat mahsulotlar (korrelyatsiyalangan subquery), id bo'yicha.
Kutilgan natija
8. (dokon, o'rta) Har bir mijoz uchun buyurtmalari sonini skalyar subquery bilan chiqaring (birinchi 8).
9. (dokon, o'rta) Eng ko'p buyurtma bergan mijoz id (subquery bilan MAX soni).
10. (dokon, o'rta) FROM da subquery: har bir kategoriyaning o'rtacha narxini topib, umumiy o'rtachadan yuqori kategoriyalar id.
11. (dokon, o'rta) ANY: narxi 3-kategoriyadagi biror mahsulotdan qimmat bo'lgan mahsulotlar soni.
12. (dokon, o'rta) ALL: narxi 4-kategoriyadagi barcha mahsulotlardan qimmat mahsulotlar soni.
13. (maktab, oson) O'rtacha maoshdan ko'p oladigan o'qituvchilar ismi.
Kutilgan natija
14. (maktab, oson) Baho olgan o'quvchilar sonini IN bilan chiqaring.
15. (maktab, oson) Sinfi rahbarligini olgan o'qituvchilar ismi (EXISTS).
16. (maktab, o'rta) O'z sinfining o'rtacha tug'ilgan sanasidan keyin tug'ilgan o'quvchilar soni (korrelyatsiyalangan).
17. (maktab, o'rta) Umumiy o'rtacha balldan yuqori ball olgan o'quvchilar (o'rtacha bo'yicha) id si.
18. (maktab, o'rta) Hech qachon 'kelmadi' belgilanmagan o'quvchilar soni (NOT EXISTS).
19. (maktab, o'rta) Eng yuqori maosh oluvchi o'qituvchi ismi.
20. (maktab, o'rta) Har bir fan uchun nomi va olingan baholar soni (skalyar subquery).
Kutilgan natija
21. (maktab, qiyin) Har bir sinfdagi o'rtacha balli eng yuqori bo'lgan sinf nomi.
22. (bank, oson) O'rtacha balansdan yuqori hisoblar id si.
23. (bank, oson) Qarzi bor mijozlar ismi (IN).
Kutilgan natija
24. (bank, oson) Hisobi yo'q mijozlar soni (NOT EXISTS).
25. (bank, o'rta) O'z hisobi turining o'rtacha balansidan katta hisoblar id (korrelyatsiyalangan).
26. (bank, o'rta) Eng katta qarz olgan mijoz ismi.
27. (bank, o'rta) O'rtacha tranzaksiyadan katta tranzaksiyalar soni.
28. (bank, o'rta) Har bir mijoz uchun eng katta hisob balansi (skalyar subquery, birinchi 8).
29. (bank, o'rta) Hech qanday tranzaksiyasi bo'lmagan hisoblar id si.
30. (bank, qiyin) Har bir hisobdagi oxirgi tranzaksiya summasini subquery bilan chiqaring (hisob_id, summa), birinchi 8.
Kutilgan natija
31. (bank, qiyin) Qarzlari summasi umumiy o'rtachadan yuqori bo'lgan mijozlar ismi (DISTINCT bilan, ism bo'yicha).
Kutilgan natija
32. (kutubxona, oson) O'rtacha nashr yilidan keyin chiqqan kitoblar soni.
33. (kutubxona, oson) Eng yosh muallifning ismi.
34. (kutubxona, oson) Ijaraga olingan kitoblar nomi (EXISTS, birinchi 8).
Kutilgan natija
35. (kutubxona, o'rta) Hali qaytarilmagan kitoblarni o'qiyotgan a'zolar ismi (IN).
36. (kutubxona, o'rta) O'z janrining o'rtacha yilidan yangi kitoblar soni.
37. (kutubxona, o'rta) Har bir a'zo uchun ijaralar soni (skalyar subquery), eng ko'p 3 ta.
38. (kutubxona, qiyin) Har bir muallifning eng yangi kitobi nomi (korrelyatsiyalangan subquery bilan).
Kutilgan natija
39. (kutubxona, qiyin) Barcha janrlardan kamida bittadan kitob olgan a'zolar (relyatsion bo'linish, NOT EXISTS ichma-ich).
40. (dokon, qiyin) Barcha kategoriyalardan kamida bittadan mahsulot sotib olgan mijozlar id si.