Tarkibga o'tish

009. CASE ifodasi

Bu mavzuda shartli ifodalar va shartli agregatlar bo'yicha 24 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 narxi bo'yicha 'arzon' (<100000), 'o''rta' (<500000), 'qimmat' (qolgani) deb tasniflang (id, toifa).

Kutilgan natija
1 | arzon
2 | arzon
3 | arzon
4 | arzon
5 | arzon
6 | arzon
7 | arzon
8 | arzon
9 | arzon
10 | arzon

2. (dokon, oson) Qoldig'i 0 bo'lsa 'tugagan', 10 dan kam bo'lsa 'oz', aks holda 'yetarli' deb belgilang (id, holat).

Kutilgan natija
1 | yetarli
2 | yetarli
3 | yetarli
4 | oz
5 | yetarli
6 | yetarli
7 | yetarli
8 | yetarli
9 | yetarli
10 | yetarli

3. (dokon, oson) Buyurtma holatini o'zbekchadan: 'yangi'->'Yangi', 'yetkazildi'->'Tugagan', 'bekor'->'Bekor' (CASE holat WHEN ...), id va nom.

Kutilgan natija
1 | Tugagan
2 | Bekor
3 | Tugagan
4 | Yangi
5 | Tugagan
6 | Bekor
7 | Tugagan
8 | Yangi
9 | Tugagan
10 | Bekor

4. (dokon, o'rta) Toshkentlik mijozlar sonini va boshqa shaharlik mijozlar sonini bitta qatorda (toshkent,boshqa) chiqaring.

Kutilgan natija
5 | 25

5. (dokon, o'rta) Har bir to'lov usuli bo'yicha summalarni ustunlarga ajrating (naqd,karta,click), SUM(CASE...) bilan.

Kutilgan natija
805560.00 | 788430.00 | 751995.00

6. (dokon, o'rta) Mijozni tug'ilgan yiliga ko'ra avlodga ajrating: <1985 'katta', <2000 'yosh', boshqa 'yangi' va avlodlar sonini chiqaring.

Kutilgan natija
katta | 18
yosh | 12

7. (dokon, o'rta) CASE bilan tartiblash: avval 'yangi' keyin 'yetkazildi' keyin 'bekor' buyurtmalar (id, holat), birinchi 8 ta.

Kutilgan natija
4 | yangi
8 | yangi
12 | yangi
16 | yangi
20 | yangi
24 | yangi
28 | yangi
32 | yangi

8. (maktab, oson) Baholarni so'z bilan belgilang: 5 'a''lo', 4 'yaxshi', 3 'qoniqarli', qolgani 'yomon' (id, so'z), birinchi 10.

Kutilgan natija
1 | qoniqarli
2 | a'lo
3 | yomon
4 | yaxshi
5 | yomon
6 | qoniqarli
7 | a'lo
8 | yomon
9 | yaxshi
10 | yomon

9. (maktab, oson) O'quvchi jinsini 'E'->'o''g''il', 'A'->'qiz' ko'rinishida chiqaring (birinchi 6).

Kutilgan natija
Madina Karimova | qiz
Sherzod Ismoilov | o'g'il
Nilufar Hasanova | qiz
Doniyor Ergashev | o'g'il
Sevara Karimova | qiz
Timur Ismoilov | o'g'il

10. (maktab, o'rta) Har bir fan bo'yicha 5 va 4 olinganlar sonini ustunlarga (besh,tort) ajrating.

Kutilgan natija
1 | 3 | 4
2 | 3 | 4
3 | 4 | 3
4 | 4 | 3
5 | 4 | 4
6 | 4 | 4
7 | 4 | 4
8 | 4 | 4

11. (maktab, o'rta) Davomat: 'keldi'=1, boshqasi 0 bo'lgan ustun bilan o'quvchi bo'yicha qatnashish ulushini (%) chiqaring (birinchi 5 o'quvchi).

Kutilgan natija
1 | 100.0
2 | 0.0
3 | 0.0
4 | 100.0
5 | 100.0

12. (maktab, o'rta) O'qituvchilarni maosh bo'yicha: <4000000 'past', <5500000 'o''rta', qolgani 'yuqori' deb sanang.

Kutilgan natija
o'rta | 6
past | 3
yuqori | 3

13. (bank, oson) Hisob balansini 'manfiy', 'nol', 'musbat' deb tasniflang va sonini hisoblang.

Kutilgan natija
musbat | 40

14. (bank, oson) Tranzaksiya turini: 'kirim' bo'lsa +summa, aks holda -summa (imzoli) deb chiqaring, birinchi 6.

Kutilgan natija
1 | -148765.00
2 | 247530.00
3 | -346295.00
4 | 445060.00
5 | -543825.00
6 | 642590.00

15. (bank, o'rta) Qarz xavfini baholang: 'kechikkan' -> 'yuqori', muddat_oy>=24 -> 'o''rta', qolgani 'past' (id, xavf).

Kutilgan natija
1 | past
2 | yuqori
3 | o'rta
4 | o'rta
5 | yuqori
6 | past
7 | past
8 | yuqori
9 | o'rta
10 | o'rta

16. (bank, o'rta) Balans (hisob) bo'yicha: kirim summalari va chiqim summalarini ustunlar sifatida chiqaring (hisob_id, kirim, chiqim), birinchi 5.

Kutilgan natija
1 | 6951800.00 | 0
2 | 0 | 0
3 | 8779570.00 | 0
4 | 0 | 4778970.00
5 | 5557340.00 | 0

17. (bank, o'rta) Mijozlarni yosh guruhlariga bo'ling (2025-01-01 holatida): <40, 40-59, 60+ va soni.

Kutilgan natija
<40 | 7
40-59 | 19
60+ | 4

18. (kutubxona, oson) Kitobni yoshi bo'yicha: yil<1980 'eski', yil<2010 'o''rta', boshqasi 'yangi' (id, toifa), birinchi 8.

Kutilgan natija
1 | eski
2 | eski
3 | o'rta
4 | o'rta
5 | o'rta
6 | yangi
7 | eski
8 | eski

19. (kutubxona, oson) Ijara qaytarilgan bo'lsa 'qaytarilgan', aks holda 'ijarada' deb belgilang va sonini hisoblang.

Kutilgan natija
ijarada | 14
qaytarilgan | 56

20. (kutubxona, o'rta) Mualliflarni davlati bo'yicha 'mahalliy' (Ozbekiston) va 'xorijiy' ga ajratib sanang.

Kutilgan natija
mahalliy | 6
xorijiy | 2

21. (kutubxona, o'rta) Ijaralarni muddati: <=7 kun 'tez', <=14 'oddiy', >14 'uzoq', qaytarilmagan 'ochiq'; toifa bo'yicha soni.

Kutilgan natija
ochiq | 14
oddiy | 34
tez | 14
uzoq | 8

22. (kutubxona, qiyin) Har bir janr uchun kitoblar sonini yangi (>=2000) va eski (<2000) ustunlarga ajrating (janr_id, yangi, eski).

Kutilgan natija
1 | 2 | 6
2 | 2 | 6
3 | 2 | 6
4 | 4 | 4
5 | 2 | 6

23. (dokon, qiyin) Har bir shahar bo'yicha mijozlarni emaili borligiga qarab ('bor'/'yoq') ustunlarga ajratib sanang (shahar, bor, yoq).

Kutilgan natija
Andijon | 4 | 1
Buxoro | 4 | 1
Fargona | 5 | 0
Namangan | 4 | 1
Samarqand | 4 | 1
Toshkent | 5 | 0

24. (bank, qiyin) Mijoz jami balansiga qarab daraja bering: >50 mln 'VIP', >20 mln 'oltin', qolgani 'oddiy' (mijoz_id, daraja), hisobi borlar, birinchi 8.

Kutilgan natija
1 | VIP
4 | VIP
7 | VIP
10 | VIP
13 | VIP
16 | VIP
19 | VIP
22 | VIP