Tarkibga o'tish

024. ARRAY

Bu mavzuda massivlar va ular bilan ishlash bo'yicha 26 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) ARRAY[1,2,3] massivining uzunligini chiqaring (array_length).

Kutilgan natija
3

2. (dokon, oson) Massivning ikkinchi elementini chiqaring: (ARRAY[10,20,30])[2].

Kutilgan natija
20

3. (dokon, oson) Kategoriya nomlarini ARRAY_AGG bilan massivga yig'ing (nom bo'yicha).

Kutilgan natija
{Elektronika,Kitob,Kiyim,Oziq-ovqat,Uy-ro'zg'or}

4. (dokon, oson) 5 ning ARRAY[1,5,9] ichida borligini = ANY bilan tekshiring.

Kutilgan natija
t

5. (dokon, oson) ARRAY['a','b'] || ARRAY['c'] bilan massivlarni birlashtiring.

Kutilgan natija
{a,b,c}

6. (dokon, o'rta) UNNEST bilan ARRAY[3,1,2] ni qatorlarga yoying va tartiblang.

Kutilgan natija
1
2
3

7. (dokon, o'rta) @> operatori: ARRAY[1,2,3] @> ARRAY[2,3] natijasi.

Kutilgan natija
t

8. (dokon, o'rta) && operatori (kesishish): ARRAY[1,2] && ARRAY[2,5] natijasi.

Kutilgan natija
t

9. (dokon, o'rta) Mijozlar shaharlarini noyob massivga yig'ing (alifbo tartibida).

Kutilgan natija
{Andijon,Buxoro,Fargona,Namangan,Samarqand,Toshkent}

10. (dokon, o'rta) Kategoriya bo'yicha mahsulot id lar massivi (birinchi 3 kategoriya).

Kutilgan natija
1 | {1,6,11,16,21}
2 | {2,7,12,17,22}
3 | {3,8,13,18,23}

11. (dokon, o'rta) Massiv ustunli jadval: 'teglar' (id, tag text[]) — 2 qator va 'yangi' tegiga ega qatorlar soni (= ANY).

Kutilgan natija
1

12. (dokon, qiyin) array_to_string va string_to_array: 'a,b,c' ni massivga, so'ng '-' bilan qayta birlashtiring.

Kutilgan natija
a-b-c

13. (dokon, qiyin) Ko'p o'lchovli massiv: ARRAY[[1,2],[3,4]] dan [2][1] elementi va o'lchamlar soni (array_ndims).

Kutilgan natija
3 | 2

14. (dokon, qiyin) array_position va array_remove: ARRAY[5,6,7,6] da 7 ning o'rni va 6 olib tashlangan massiv.

Kutilgan natija
3 | {5,7}

15. (maktab, oson) O'quvchi baholarini massivga yig'ing (1-o'quvchi, sana tartibida).

Kutilgan natija
{1,1,1}

16. (maktab, o'rta) Sinf bo'yicha o'quvchi ismlari massivi (birinchi 2 sinf).

Kutilgan natija
1 | {"Aziz Ergashev","Doniyor Ergashev","Laylo Hasanova","Madina Karimova","Nilufar Hasanova","Sevara Karimova","Sherzod Ismoilov","Timur Ismoilov"}
2 | {"Aziz Ergashev","Doniyor Ergashev","Laylo Hasanova","Madina Karimova","Nilufar Hasanova","Sevara Karimova","Sherzod Ismoilov","Timur Ismoilov"}

17. (maktab, o'rta) Massivdagi 5 lar sonini hisoblang: 1-o'quvchi baholaridan array_length(array_positions...) emas, UNNEST bilan 5 lar soni.

Kutilgan natija
0

18. (maktab, qiyin) Massiv ustuni: 'ish_kunlari' (oqituvchi_id, kunlar int[]) — {1,3,5}; 3-kuni ishlaydiganlar.

Kutilgan natija
1

19. (bank, oson) Hisob turlari massivi (noyob, tartibli).

Kutilgan natija
{depozit,jamgarma,joriy}

20. (bank, o'rta) Mijoz hisob id lari massivi (birinchi 3 mijoz).

Kutilgan natija
1 | {10,20,30,40}
4 | {1,11,21,31}
7 | {2,12,22,32}

21. (bank, o'rta) ANY bilan IN o'rniga: hisob turi massivdagi qiymatlardan biri bo'lgan hisoblar soni ('{jamgarma,depozit}').

Kutilgan natija
26

22. (bank, qiyin) Massiv bilan filtrlash: mijoz id lari massividagi hisoblar yig'indisi ('{1,2,3}').

Kutilgan natija
123456700.00

23. (bank, qiyin) Tranzaksiya summalarining massivdagi eng kattasi (1-hisob): (ARRAY_AGG(summa ORDER BY summa DESC))[1].

Kutilgan natija
4000600.00

24. (kutubxona, oson) Janr nomlari massivi.

Kutilgan natija
{Roman,Detektiv,Ilmiy,She'riyat,Tarix}

25. (kutubxona, o'rta) Muallif kitob id lari massivi (muallif 1..3).

Kutilgan natija
1 | {8,16,24,32,40}
2 | {1,9,17,25,33}
3 | {2,10,18,26,34}

26. (kutubxona, qiyin) Ikki a'zo o'qigan kitoblar kesishmasi (array && va intersect emas): a'zo 1 va 2 ning kitob id massivlari kesishadimi.

Kutilgan natija
f