004. ORDER BY, LIMIT, OFFSET, DISTINCT
Bu mavzuda tartiblash, sahifalash va takrorlarni olib tashlash bo'yicha 30 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) Mahsulotlarni narx bo'yicha o'sish tartibida (nom, narx) chiqaring; narx teng bo'lsa id bo'yicha.
Kutilgan natija
2. (dokon, oson) Mahsulotlarni narx bo'yicha kamayish tartibida (id, narx) chiqaring.
Kutilgan natija
3. (dokon, oson) Eng qimmat 5 ta mahsulot nomi va narxini chiqaring.
Kutilgan natija
4. (dokon, oson) Eng arzon 3 ta mahsulotni (id, narx) chiqaring.
5. (dokon, oson) Mijozlar yashaydigan noyob shaharlarni alifbo tartibida chiqaring.
6. (dokon, oson) Buyurtma holatlarining noyob ro'yxatini chiqaring.
7. (dokon, oson) To'lov usullarining noyob ro'yxatini chiqaring.
8. (dokon, o'rta) Eng so'nggi 5 ta buyurtmani (id, sana) chiqaring.
9. (dokon, o'rta) Mahsulotlarni narx bo'yicha kamayish tartibida tartiblab, 3-o'rindan boshlab 5 tasini (OFFSET 2) chiqaring.
Kutilgan natija
10. (soni, o'rta) (shahar, tugilgan_yil) juftliklarining noyob sonini soni sifatida chiqaring.
11. (dokon, o'rta) Mijozlarni shahar bo'yicha alifbo tartibida, shahar ichida ism bo'yicha tartiblab chiqaring (id, shahar, ism).
Kutilgan natija
12. (maktab, oson) O'quvchilarni tug'ilgan sanasi bo'yicha eng kattadan boshlab 5 tasini chiqaring (ism, tugilgan).
Kutilgan natija
13. (maktab, oson) O'qituvchilarni maosh bo'yicha kamayish tartibida (ism, maosh) chiqaring.
Kutilgan natija
14. (maktab, oson) Baholarda uchraydigan noyob ballarni kamayish tartibida chiqaring.
15. (maktab, o'rta) Eng yuqori maosh oluvchi 3 o'qituvchining ismini chiqaring.
16. (maktab, o'rta) Davomat holatlarining noyob ro'yxatini chiqaring.
17. (bank, oson) Balansi eng katta 5 ta hisobni (id, balans) chiqaring.
Kutilgan natija
18. (bank, oson) Filiallar shaharlarining noyob ro'yxatini chiqaring.
19. (bank, oson) Hisob turlarining noyob ro'yxatini chiqaring.
20. (bank, o'rta) Eng katta 3 ta qarzni (id, summa) chiqaring.
21. (bank, o'rta) Tranzaksiyalardan 11-chisidan boshlab 5 tasini sana bo'yicha tartiblab chiqaring (id, sana).
Kutilgan natija
22. (bank, o'rta) Qarzlarni holat bo'yicha, so'ng summa kamayish tartibida chiqaring (id, holat, summa).
Kutilgan natija
23. (kutubxona, oson) Eng yangi 5 ta kitobni (nom, yil) chiqaring.
Kutilgan natija
24. (kutubxona, oson) Kitob nashr yillarining noyob ro'yxatini birinchi 10 tasini o'sish tartibida chiqaring.
25. (kutubxona, oson) Mualliflar davlatlarining noyob ro'yxatini chiqaring.
26. (kutubxona, o'rta) Mualliflarni tug'ilgan yili bo'yicha eng kattadan boshlab 2-sahifa (har sahifada 3 ta) ni chiqaring.
27. (kutubxona, o'rta) Ijaralarni olingan sanasi bo'yicha kamayish tartibida birinchi 5 tasini chiqaring (id, olingan).
28. (dokon, qiyin) Har bir shahardan faqat bitta (id si eng kichik) mijozni chiqarish uchun DISTINCT ON ishlating (shahar, id, ism).
Kutilgan natija
29. (bank, qiyin) Har bir mijozning eng katta balansli hisobini DISTINCT ON bilan chiqaring (mijoz_id, id, balans).
Kutilgan natija
30. (kutubxona, qiyin) Har bir janrdagi eng yangi kitobni DISTINCT ON bilan chiqaring (janr_id, id, yil).