Tarkibga o'tish

017. Window funksiyalar

Bu mavzuda ROW_NUMBER, RANK, LAG, LEAD va oyna chegaralari bo'yicha 61 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 kamayish tartibida ROW_NUMBER bilan raqamlang (id, narx, raqam), birinchi 8.

Kutilgan natija
25 | 202900.00 | 1
24 | 195000.00 | 2
23 | 187100.00 | 3
22 | 179200.00 | 4
21 | 171200.00 | 5
20 | 163300.00 | 6
19 | 155400.00 | 7
18 | 147500.00 | 8

2. (dokon, oson) Har bir mahsulot narxi bilan RANK (narx bo'yicha kamayish) ni chiqaring, birinchi 8.

Kutilgan natija
25 | 202900.00 | 1
24 | 195000.00 | 2
23 | 187100.00 | 3
22 | 179200.00 | 4
21 | 171200.00 | 5
20 | 163300.00 | 6
19 | 155400.00 | 7
18 | 147500.00 | 8

3. (dokon, oson) Har bir mahsulot yonida umumiy o'rtacha narxni (window AVG) ko'rsating (birinchi 5, 2 xona).

Kutilgan natija
1 | 12900.00 | 107896.00
2 | 20800.00 | 107896.00
3 | 28700.00 | 107896.00
4 | 36600.00 | 107896.00
5 | 44500.00 | 107896.00

4. (dokon, oson) Kategoriya ichida narx bo'yicha DENSE_RANK (kamayish), birinchi 10 qator (kategoriya, id).

Kutilgan natija
1 | 21 | 171200.00 | 1
1 | 16 | 131700.00 | 2
1 | 11 | 92100.00 | 3
1 | 6 | 52500.00 | 4
1 | 1 | 12900.00 | 5
2 | 22 | 179200.00 | 1
2 | 17 | 139600.00 | 2
2 | 12 | 100000.00 | 3
2 | 7 | 60400.00 | 4
2 | 2 | 20800.00 | 5

5. (dokon, oson) Har bir kategoriyaning eng qimmat mahsuloti (ROW_NUMBER=1).

Kutilgan natija
1 | 21 | Telefon 21 | 171200.00
2 | 22 | Noutbuk 22 | 179200.00
3 | 23 | Futbolka 23 | 187100.00
4 | 24 | Jinsi 24 | 195000.00
5 | 25 | Non 25 | 202900.00

6. (dokon, oson) Mahsulot narxi va o'z kategoriyasi o'rtacha narxi (window, 2 xona), birinchi 6.

Kutilgan natija
1 | 1 | 12900.00 | 92080.00
2 | 2 | 20800.00 | 100000.00
3 | 3 | 28700.00 | 107900.00
4 | 4 | 36600.00 | 115800.00
5 | 5 | 44500.00 | 123700.00
6 | 1 | 52500.00 | 92080.00

7. (dokon, o'rta) Buyurtmalar sana bo'yicha oldingi buyurtma sanasi (LAG), birinchi 6.

Kutilgan natija
1 | 2024-01-06 | 
2 | 2024-01-11 | 2024-01-06
3 | 2024-01-16 | 2024-01-11
4 | 2024-01-21 | 2024-01-16
5 | 2024-01-26 | 2024-01-21
6 | 2024-01-31 | 2024-01-26

8. (dokon, o'rta) Keyingi buyurtmagacha kunlar farqi (LEAD), birinchi 6.

Kutilgan natija
1 | 2024-01-06 | 5
2 | 2024-01-11 | 5
3 | 2024-01-16 | 5
4 | 2024-01-21 | 5
5 | 2024-01-26 | 5
6 | 2024-01-31 | 5

9. (dokon, o'rta) To'lovlarning kumulyativ yig'indisi (id tartibida), birinchi 6.

Kutilgan natija
1 | 13571.00 | 13571.00
2 | 17142.00 | 30713.00
3 | 20713.00 | 51426.00
4 | 24284.00 | 75710.00
5 | 27855.00 | 103565.00
6 | 31426.00 | 134991.00

10. (dokon, o'rta) To'lovlar uchun 3 qatorli harakatlanuvchi o'rtacha (id tartibida, 0 xona), birinchi 6.

Kutilgan natija
1 | 13571
2 | 15357
3 | 17142
4 | 20713
5 | 24284
6 | 27855

11. (dokon, o'rta) Har bir mijozning birinchi buyurtmasi sanasi (FIRST_VALUE), birinchi 6 buyurtma (mijoz_id, id tartibida).

Kutilgan natija
1 | 30 | 2024-05-30 | 2024-05-30
1 | 60 | 2024-10-27 | 2024-05-30
2 | 13 | 2024-03-06 | 2024-03-06
2 | 43 | 2024-08-03 | 2024-03-06
3 | 26 | 2024-05-10 | 2024-05-10
3 | 56 | 2024-10-07 | 2024-05-10

12. (dokon, o'rta) Mijoz bo'yicha buyurtmalar tartib raqami (ROW_NUMBER), birinchi 8.

Kutilgan natija
1 | 30 | 1
1 | 60 | 2
2 | 13 | 1
2 | 43 | 2
3 | 26 | 1
3 | 56 | 2
4 | 9 | 1
4 | 39 | 2

13. (dokon, o'rta) Har bir mijozning eng so'nggi buyurtmasi (id, sana) — ROW_NUMBER bilan, birinchi 6.

Kutilgan natija
1 | 60 | 2024-10-27
2 | 43 | 2024-08-03
3 | 56 | 2024-10-07
4 | 39 | 2024-07-14
5 | 52 | 2024-09-17
6 | 35 | 2024-06-24

14. (dokon, o'rta) Mahsulotlarni narx bo'yicha 4 ta guruhga (NTILE(4)) ajrating; har bir guruh nechtadan, guruh raqami va soni.

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

15. (dokon, o'rta) Har bir mahsulot narxining kategoriyadagi ulushi (foizda, 1 xona), birinchi 6.

Kutilgan natija
1 | 1 | 2.8
2 | 2 | 4.2
3 | 3 | 5.3
4 | 4 | 6.3
5 | 5 | 7.2
6 | 1 | 11.4

16. (dokon, qiyin) Oylik buyurtmalar soni va o'sish: oldingi oyga nisbatan farq (LAG), oylar bo'yicha.

Kutilgan natija
2024-01-01 | 6 | 
2024-02-01 | 5 | -1
2024-03-01 | 7 | 2
2024-04-01 | 6 | -1
2024-05-01 | 6 | 0
2024-06-01 | 6 | 0
2024-07-01 | 6 | 0
2024-08-01 | 6 | 0
2024-09-01 | 6 | 0
2024-10-01 | 6 | 0

17. (dokon, qiyin) Mijozlar bo'yicha jami sarf (bekor emas) va uning umumiy jamidagi kumulyativ foizi, birinchi 6 (kamayish tartibida).

Kutilgan natija
30 | 1482600.00 | 7.7
4 | 1403600.00 | 14.9
6 | 1363900.00 | 22.0
8 | 1324600.00 | 28.8
2 | 1047600.00 | 34.2
14 | 1007600.00 | 39.4

18. (dokon, qiyin) Har bir kategoriyada narxi bo'yicha 2-o'rindagi mahsulot (DENSE_RANK=2, id bo'yicha).

Kutilgan natija
1 | 16 | 131700.00
2 | 17 | 139600.00
3 | 18 | 147500.00
4 | 19 | 155400.00
5 | 20 | 163300.00

19. (dokon, qiyin) RANGE oyna: har bir buyurtma uchun o'zidan oldingi 10 kun ichidagi buyurtmalar soni (birinchi 8, sana tartibida).

Kutilgan natija
1 | 2024-01-06 | 1
2 | 2024-01-11 | 2
3 | 2024-01-16 | 3
4 | 2024-01-21 | 3
5 | 2024-01-26 | 3
6 | 2024-01-31 | 3
7 | 2024-02-05 | 3
8 | 2024-02-10 | 3

20. (maktab, oson) O'quvchilarni o'rtacha ball bo'yicha RANK qiling (birinchi 8).

Kutilgan natija
2 | 5.00 | 1
7 | 5.00 | 1
12 | 5.00 | 1
17 | 5.00 | 1
22 | 5.00 | 1
27 | 5.00 | 1
32 | 5.00 | 1
37 | 5.00 | 1

21. (maktab, oson) O'qituvchilarni maosh bo'yicha tartiblab ROW_NUMBER bering.

Kutilgan natija
Anvar Qodirov | 6000000.00 | 1
Feruza Nazarov | 5750000.00 | 2
Rustam Saidova | 5500000.00 | 3
Malika Qodirov | 5250000.00 | 4
Shuhrat Nazarov | 5000000.00 | 5
Gulnora Saidova | 4750000.00 | 6
Anvar Qodirov | 4500000.00 | 7
Feruza Nazarov | 4250000.00 | 8
Rustam Saidova | 4000000.00 | 9
Malika Qodirov | 3750000.00 | 10

22. (maktab, oson) Har bir o'quvchi balli va o'quvchi o'rtacha balli yonma-yon (window AVG, 2 xona), birinchi 6.

Kutilgan natija
1 | 4 | 3 | 3.00
2 | 7 | 5 | 5.00
3 | 10 | 2 | 2.00
4 | 13 | 4 | 4.00
5 | 16 | 1 | 1.00
6 | 19 | 3 | 3.00

23. (maktab, o'rta) Har bir sinfda eng yosh o'quvchi (ROW_NUMBER, tugilgan DESC).

Kutilgan natija
1 | 25 | Madina Karimova
2 | 26 | Sherzod Ismoilov
3 | 27 | Nilufar Hasanova
4 | 23 | Laylo Hasanova
5 | 24 | Aziz Ergashev

24. (maktab, o'rta) Har bir fan bo'yicha eng yuqori ball oluvchilar orasida eng kichik id li o'quvchi — fan, oquvchi (RANK bilan, ball bo'yicha, har fanda birinchi baho).

Kutilgan natija
1 | 32 | 5
2 | 37 | 5
3 | 2 | 5
4 | 7 | 5
5 | 12 | 5
6 | 17 | 5
7 | 22 | 5
8 | 27 | 5

25. (maktab, o'rta) O'quvchi baholarining kumulyativ o'rtachasi (sana, id tartibida) 1-o'quvchi uchun.

Kutilgan natija
2024-09-02 | 1 | 1.00
2024-09-02 | 1 | 1.00
2024-09-02 | 1 | 1.00

26. (maktab, o'rta) Oldingi baho bilan farq (LAG) 1-o'quvchi baholari uchun.

Kutilgan natija
2024-09-02 | 1 | 
2024-09-02 | 1 | 0
2024-09-02 | 1 | 0

27. (maktab, o'rta) O'qituvchilar maoshini sinf rahbarlari ichida ... emas: maoshi bo'yicha NTILE(3) toifalari (ism, toifa).

Kutilgan natija
Anvar Qodirov | 6000000.00 | 1
Feruza Nazarov | 5750000.00 | 1
Rustam Saidova | 5500000.00 | 1
Malika Qodirov | 5250000.00 | 1
Shuhrat Nazarov | 5000000.00 | 2
Gulnora Saidova | 4750000.00 | 2
Anvar Qodirov | 4500000.00 | 2
Feruza Nazarov | 4250000.00 | 2
Rustam Saidova | 4000000.00 | 3
Malika Qodirov | 3750000.00 | 3

28. (maktab, o'rta) Har bir o'quvchi uchun sinfidagi maksimal balli (window MAX) bilan solishtirish: birinchi 6 baho.

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

29. (maktab, qiyin) Har bir sinfda o'rtacha balli bo'yicha top-2 o'quvchi (sinf, o'quvchi, ortacha).

Kutilgan natija
1 | 5 | 2.00
1 | 10 | 2.00
2 | 1 | 1.00
2 | 6 | 1.00
3 | 2 | 5.00
3 | 7 | 5.00
4 | 3 | 4.00
4 | 8 | 4.00
5 | 4 | 3.00
5 | 9 | 3.00

30. (maktab, qiyin) Ketma-ket 'kelmadi' lar: davomat sanalari bo'yicha 1-o'quvchi uchun oldingi holat va keyingi holatni (LAG/LEAD) chiqaring.

Kutilgan natija
2024-10-19 | kelmadi |  | kelmadi
2024-10-19 | kelmadi | kelmadi | 

31. (maktab, qiyin) Har bir fan bo'yicha o'rtacha ball va fanlar orasida o'rin (DENSE_RANK) — fan nomi bilan.

Kutilgan natija
Biologiya | 3.11 | 1
Tarix | 3.05 | 2
Informatika | 3.05 | 2
Matematika | 3.00 | 3
Ingliz tili | 3.00 | 3
Kimyo | 2.95 | 4
Ona tili | 2.94 | 5
Fizika | 2.89 | 6

32. (maktab, qiyin) Percent_rank: o'qituvchilarning maoshi bo'yicha foizli o'rni (2 xona).

Kutilgan natija
Gulnora Saidova | 0.00
Shuhrat Nazarov | 0.09
Malika Qodirov | 0.18
Rustam Saidova | 0.27
Feruza Nazarov | 0.36
Anvar Qodirov | 0.45
Gulnora Saidova | 0.55
Shuhrat Nazarov | 0.64
Malika Qodirov | 0.73
Rustam Saidova | 0.82

33. (bank, oson) Hisoblarni balans bo'yicha RANK qiling (birinchi 8).

Kutilgan natija
40 | 49382680.00 | 1
39 | 48148113.00 | 2
38 | 46913546.00 | 3
37 | 45678979.00 | 4
36 | 44444412.00 | 5
35 | 43209845.00 | 6
34 | 41975278.00 | 7
33 | 40740711.00 | 8

34. (bank, oson) Tranzaksiyalarning kumulyativ summasi (id tartibida), birinchi 6.

Kutilgan natija
1 | 148765.00 | 148765.00
2 | 247530.00 | 396295.00
3 | 346295.00 | 742590.00
4 | 445060.00 | 1187650.00
5 | 543825.00 | 1731475.00
6 | 642590.00 | 2374065.00

35. (bank, oson) Har bir hisob turi ichida balans bo'yicha ROW_NUMBER, birinchi 6 (tur, raqam).

Kutilgan natija
depozit | 38 | 46913546.00 | 1
depozit | 35 | 43209845.00 | 2
depozit | 32 | 39506144.00 | 3
depozit | 29 | 35802443.00 | 4
depozit | 26 | 32098742.00 | 5
depozit | 23 | 28395041.00 | 6

36. (bank, o'rta) Hisob tranzaksiyalari bo'yicha qoldiq (kirim +, chiqim -, otkazma -) kumulyativ, 1-hisob.

Kutilgan natija
40 | 2024-01-29 17:00:00 | 4000600.00
80 | 2024-02-27 01:00:00 | 6951800.00

37. (bank, o'rta) Mijoz bo'yicha eng katta qarz (RANK=1).

Kutilgan natija
1 | 15 | 50000000.00
3 | 8 | 29000000.00
5 | 16 | 53000000.00
7 | 9 | 32000000.00
9 | 17 | 56000000.00
11 | 10 | 35000000.00
13 | 18 | 59000000.00
15 | 11 | 38000000.00
17 | 19 | 62000000.00
19 | 12 | 41000000.00

38. (bank, o'rta) Tranzaksiya summasining oldingisiga nisbatan farqi (LAG), 1-hisob.

Kutilgan natija
40 | 4000600.00 | 
80 | 2951200.00 | -1049400.00

39. (bank, o'rta) Hisob balansi bo'yicha NTILE(4) kvartil, har bir kvartildagi hisoblar soni.

Kutilgan natija
1 | 10
2 | 10
3 | 10
4 | 10

40. (bank, o'rta) Har bir hisobdagi birinchi va oxirgi tranzaksiya summasi (FIRST_VALUE, LAST_VALUE bilan to'liq oyna), birinchi 5 hisob.

Kutilgan natija
1 | 4000600.00 | 2951200.00
2 | 2321595.00 | 1272195.00
3 | 642590.00 | 3543790.00
4 | 2914185.00 | 1864785.00
5 | 1235180.00 | 4136380.00

41. (bank, qiyin) 3 tranzaksiyalik harakatlanuvchi o'rtacha summa (1-hisob, 0 xona).

Kutilgan natija
40 | 4000600
80 | 3475900

42. (bank, qiyin) Har bir filialda eng katta umumiy balansli mijoz (filial, mijoz, jami).

Kutilgan natija
1 | 25 | 113580164.00
2 | 1 | 123456700.00
3 | 22 | 108641896.00
4 | 28 | 118518432.00
5 | 19 | 103703628.00

43. (bank, qiyin) Gaps: ketma-ket tranzaksiyalar orasidagi vaqt (soat) farqi eng katta bo'lgan juftlik (1-hisob).

Kutilgan natija
80 | 680.0000000000000000

44. (bank, qiyin) Eng ko'p tranzaksiya qilgan 3 kun (DENSE_RANK bilan soni bo'yicha, tenglik bo'lsa hammasi).

Kutilgan natija
2024-01-02 | 2
2024-01-04 | 2
2024-01-07 | 2
2024-01-09 | 2
2024-01-12 | 2
2024-01-14 | 2
2024-01-16 | 2
2024-01-19 | 2
2024-01-21 | 2
2024-01-24 | 2

45. (kutubxona, oson) Kitoblarni nashr yili bo'yicha ROW_NUMBER (yangidan eskiga), birinchi 6.

Kutilgan natija
33 | Kitob 33 yoli | 2021 | 1
13 | Kitob 13 yoli | 2020 | 2
26 | Kitob 26 kuni | 2017 | 3
6 | Kitob 6 kuni | 2016 | 4
39 | Kitob 39 dunyosi | 2014 | 5
19 | Kitob 19 dunyosi | 2013 | 6

46. (kutubxona, oson) Har bir janrda eng yangi kitob (ROW_NUMBER=1).

Kutilgan natija
1 | 25 | 2006
2 | 26 | 2017
3 | 32 | 2010
4 | 33 | 2021
5 | 39 | 2014

47. (kutubxona, oson) Ijaralar kumulyativ soni (olingan tartibida), birinchi 6.

Kutilgan natija
1 | 2024-01-05 | 1
2 | 2024-01-09 | 2
3 | 2024-01-13 | 3
4 | 2024-01-17 | 4
5 | 2024-01-21 | 5
6 | 2024-01-25 | 6

48. (kutubxona, o'rta) A'zo bo'yicha ijaralar tartib raqami (ROW_NUMBER), birinchi 8.

Kutilgan natija
1 | 25 | 1
1 | 50 | 2
2 | 17 | 1
2 | 42 | 2
2 | 67 | 3
3 | 9 | 1
3 | 34 | 2
3 | 59 | 3

49. (kutubxona, o'rta) A'zoning har bir keyingi ijarasi orasidagi kunlar (LAG), 1-a'zo.

Kutilgan natija
25 | 2024-04-10 | 
50 | 2024-07-19 | 100

50. (kutubxona, o'rta) Muallif bo'yicha kitoblarni nashr yili bo'yicha RANK (birinchi 8, muallif, yil).

Kutilgan natija
1 | 32 | 2010 | 1
1 | 24 | 1995 | 2
1 | 16 | 1980 | 3
1 | 8 | 1965 | 4
1 | 40 | 1952 | 5
2 | 33 | 2021 | 1
2 | 25 | 2006 | 2
2 | 17 | 1991 | 3

51. (kutubxona, o'rta) Janr bo'yicha kitob nusxalarining yig'indisi har bir kitob yonida (window SUM), birinchi 6.

Kutilgan natija
1 | 2 | 2 | 16
2 | 3 | 3 | 24
3 | 4 | 4 | 32
4 | 5 | 5 | 40
5 | 1 | 1 | 8
6 | 2 | 2 | 16

52. (kutubxona, qiyin) Har bir janrdagi kitoblarning yil bo'yicha kumulyativ nusxa soni (janr 1).

Kutilgan natija
20 | 1951 | 1
40 | 1952 | 2
15 | 1969 | 3
35 | 1970 | 4
10 | 1987 | 5
30 | 1988 | 6
5 | 2005 | 7
25 | 2006 | 8

53. (kutubxona, qiyin) Har bir a'zoning eng uzoq ushlab turilgan ijarasi (qaytarilganlar, ROW_NUMBER).

Kutilgan natija
2 | 67 | 12
3 | 59 | 16
4 | 51 | 8
5 | 68 | 13
7 | 52 | 9
8 | 69 | 14
9 | 11 | 16
10 | 53 | 10

54. (kutubxona, qiyin) Ketma-ket ikki ijarada bir xil janr olgan a'zolar soni (LAG yordamida janr taqqoslash).

Kutilgan natija
25

55. (kutubxona, qiyin) Kitoblarning yil bo'yicha o'rin (CUME_DIST, 2 xona), birinchi 6 (yil o'sish bo'yicha).

Kutilgan natija
20 | 1951 | 0.03
40 | 1952 | 0.05
7 | 1954 | 0.08
27 | 1955 | 0.10
14 | 1958 | 0.13
34 | 1959 | 0.15

56. (kutubxona, qiyin) Har bir muallifning birinchi nashr etilgan va oxirgi kitobi yili farqi (MAX-MIN OVER) — faqat bitta qator muallif uchun DISTINCT, birinchi 5.

Kutilgan natija
1 | 58
2 | 60
3 | 58
4 | 58
5 | 58

57. (dokon, qiyin) Har bir mahsulot kategoriyasidagi o'rtachadan farqi (narx - kategoriya o'rtachasi, 0 xona), birinchi 6 (id).

Kutilgan natija
1 | -79180
2 | -79200
3 | -79200
4 | -79200
5 | -79200
6 | -39580

58. (dokon, qiyin) Mijozlarni ro'yxatdan o'tish tartibida, shahar ichida nechanchi ekanligi (ROW_NUMBER) birinchi 8.

Kutilgan natija
Andijon | 3 | 1
Andijon | 9 | 2
Andijon | 15 | 3
Andijon | 21 | 4
Andijon | 27 | 5
Buxoro | 2 | 1
Buxoro | 8 | 2
Buxoro | 14 | 3

59. (dokon, qiyin) Window FILTER: kategoriya bo'yicha qimmat (>300000) mahsulotlar soni har bir mahsulot yonida (birinchi 6).

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

60. (maktab, qiyin) NTH_VALUE: har bir fanda ikkinchi eng yuqori ballni (ball bo'yicha DESC) NTH_VALUE bilan, fan 1..3.

Kutilgan natija
1 | 5
2 | 5
3 | 5

61. (bank, qiyin) Tranzaksiyalar: har bir hisobda eng katta summali tranzaksiya ulushi (shu hisob jamiga nisbatan %), birinchi 5 hisob.

Kutilgan natija
1 | 57.5
2 | 64.6
3 | 52.3
4 | 61.0
5 | 74.4