Sobes.tech

Data Engineer

Fitness klublarga tashriflar statistikasi Siz fitness klublar tarmog‘ida tahlilchi sifatida ishlayapsiz. Sizda foydalanuvchilarning tashriflari va ular sotib olgan obunalar haqida ma’lumotlar mavjud. Obunalar samaradorligini tahlil qilish zarur. Har bir obuna turi uchun: • bu obuna turidan foydalangan yagona user_id lar soni; • bu obuna bilan bo‘lib o‘tgan umumiy tashriflar soni; • bu obuna bilan bo‘lib o‘tgan foydalanuvchilar ulushi umumiy foydalanuvchilar soniga nisbatan foizda (bir o‘nlikdan keyin yaxlitlangan). Ulushni hisoblash uchun, bu obuna bilan bo‘lib o‘tgan foydalanuvchilar sonini umumiy yagona foydalanuvchilar soniga bo‘ling. Har bir foydalanuvchining faqat bitta obunasi bo‘lishi mumkin. Natijani obuna turi bo‘yicha alfavit tartibida saralang. Kiritish formati Memberships jadvali: • membership_id (int) — obuna identifikatori • user_id (int) — foydalanuvchi identifikatori • membership_type (text) — obuna turi Visits jadvali: • visit_id (int) — tashrif identifikatori • user_id (int) — foydalanuvchi identifikatori • visit_date (timestamp) — tashrif sanasi va vaqti Ma’lumotlar bo‘sh yoki noto‘g‘ri qiymatlarni o‘z ichiga olmaydi. Chiqish formati So‘rov quyidagi ustunlar bilan jadvalni qaytarishi kerak: • membership_type (text) — obuna turi • users_count (int) — bu obuna turiga ega yagona foydalanuvchilar soni • total_visits (int) — bu obuna bilan bo‘lib o‘tgan umumiy tashriflar soni • user_share (numeric) — bu obuna bilan bo‘lib o‘tgan foydalanuvchilar ulushi foizda, bir o‘nlikdan keyin yaxlitlangan Natija obuna turi bo‘yicha alfavit tartibida saralanadi.

Junior
253

Domain Driven Design (DDD) metodologiyasiga tanishmisiz? Agar ha, ularni loyihalaringizda qo‘llash misollarini bo‘lishing.

Junior
224

Nima quyidagi so'rov indeksdan foydalanmaydi, agar records jadvalida (id) oddiy B-tree indeks id bo'yicha yaratilgan bo'lsa? select * from records where id % 2 = 0 - id uchun GIN turi indeks kerak - Indekslar WHERE'dagi ifodalar bilan ishlamaydi - % taqqoslash operatsiyasi, filtratsiya emas - limit va offset indeks bilan optimizatsiya uchun majburiy - So'rov raqamli maydonga murojaat qiladi, matn emas

Junior
204

Loyihadan submodul va unga bog‘liq fayllarni qanday olib tashlash mumkin? git submodule remove <submodul-yo‘li> git rm --cached <submodul-yo‘li>; .gitmodules faylidan bo‘limni o‘chish; git commit git clean --submodules <yo‘l> git submodule delete <yo‘l> git remove submodule <yo‘l>

Junior
204

Qaysi ifoda [...] o'rnida avtomatik ravishda indeks yaratishga olib keladi? Mobil platformada kodda gorizontal skroll mavjud create table some_table( col_name [...] ); unique references other_table(col_name) not null serial integer check (col_name > 0)

Junior
203

Logistika kompaniyasi uchun hisobot Siz logistika kompaniyasida tahlilchisiz va omborlardagi operatsiyalarni hisobga olasiz. Har bir omborning samaradorligi haqida hisobot tayyorlashingiz kerak. Har bir ombor uchun hisoblang: • umumiy operatsiyalar soni (count_operations); • omborda ishlov berilgan umumiy mahsulotlar soni (sum_quantity); • faqat belgilangan vaqt bilan (NULL bo'lmagan) operatsiyalarni hisobga olgan holda, operatsiya o'rtacha ishlov vaqti (avg_processing_time), butun son bilan yaxlitlangan; • bir operatsiyada ishlov berilgan maksimal va minimal mahsulotlar soni (max_quantity, min_quantity); • har bir turdagi operatsiyalar soni («yetkazib berish», «jo'natish», «otransfer») alohida ustunlarda: supply_operations, shipment_operations, transfer_operations. Omborlarni filtrlash, ularning umumiy operatsiyalar soni 2 dan ortiq va o'rtacha ishlov vaqti 60 daqiqadan oshmaydigan. Natijani ombor ID bo'yicha o'sish tartibida saralash. Kiritish formati Operationlar jadvali: • operation_id (int) — operatsiya identifikatori • warehouse_id (int) — ombor ID • operation_type (text) — operatsiya turi: «yetkazib berish», «jo'natish», «otransfer» • quantity (int) — operatsiyadagi mahsulotlar soni • operation_date (timestamp) — operatsiya sanasi va vaqti • processing_time (int) — operatsiya ishlov vaqti Processing_time ustuni NULL qiymatlarni o'z ichiga olishi mumkin. Chiqish formati So'rov quyidagi tartibda maydonlar bilan jadvalni qaytarishi kerak: • warehouse_id (int) — ombor ID • count_operations (int) — ombor ichida amalga oshirilgan umumiy operatsiyalar soni • sum_quantity (int) — ombor ichida ishlov berilgan umumiy mahsulotlar soni • avg_processing_time (numeric) — operatsiya o'rtacha ishlov vaqti (daqiqalarda), faqat NULL bo'lmagan operatsiyalarni hisobga olgan holda, butun son bilan yaxlitlangan • max_quantity (int) — bir operatsiyada ishlov berilgan maksimal mahsulotlar soni • min_quantity (int) — bir operatsiyada ishlov berilgan minimal mahsulotlar soni • supply_operations (int) — «yetkazib berish» turidagi operatsiyalar soni • shipment_operations (int) — «jo'natish» turidagi operatsiyalar soni • transfer_operations (int) — «otransfer» turidagi operatsiyalar soni

Junior
199

Git bisect bilan ishlash jarayonida, kerakli muhitning mavjud emasligi sababli tekshirib bo'lmaydigan commit bilan duch keldingiz. Bu holatda nima qilish kerak? - Boshqa hash'lar bilan git bisect start buyruqini takrorlang - Bu commitni git bisect skip buyruği bilan o'tkazib yuboring - git bisect reset buyruği bilan bisectni reset qiling - Commitni git bisect good buyruği bilan yaxshi deb belgilash - Commitni git bisect bad buyruği bilan yomon deb belgilash

Junior
197

Maxsus ketma-ketlik, nomi even_sequence bo‘lib, faqat juft sonlarni ishlab chiqaradigan, yaratildi. [...]-ning o‘rniga nima qo‘yish kerakki, agar even_column qiymati kiritilmagan bo‘lsa, qiymat even_sequence-dan olinadi? create table some_table( even_column [...] ); integer computed as nextval('even_sequence') integer generated always as identity (start with 2 increment by 2) integer default nextval('even_sequence') integer unique default nextval('even_sequence') integer generated by even_sequence’

Junior
196

Langchain kutubxonasi bilan ishlash tajribangiz bormi? Uni yordamida qanday vazifalarni hal qildingiz?

Junior
194

Git LFS qanday texnik ishlashini va katta fayllar bilan ishlashda oddiy Git bilan solishtirganda qanday afzalliklar taqdim etishini tushuntiring.

Junior
194

Jamoamizda nima qilishni xohlaysiz?

Junior
191

Git Flow yangi ilovani chiqarishni qanday tavsiya qiladi? - Yangi issue-chiqish shoxobchasini yaratish - master-dan hotfix shoxobchasini yaratish - develop-dan alohida release shoxobchasini yaratish - master shoxobchasiga to'g'ridan-to'g'ri commit qilish - master shoxobchasini to'g'ridan-to'g'ri develop bilan birlashtirish

Junior
184

Siz barcha foydalanuvchilar va agar mavjud bo'lsa, ularning oxirgi buyurtmalarini ko'rsatadigan ko'rinish yaratmoqdasiz. Jadval: users(id, name) va orders(id, user_id, created_at). Qaysi turdagi birikma ishlatilishi kerak, shunda buyurtmasi bo'lmagan foydalanuvchilar ham ro'yxatga olinadi? CROSS JOIN RIGHT JOIN INNER JOIN FULL JOIN LEFT JOIN

Junior
183

Git ning asosiy omborining tarixida kritik muhim maxfiy ma'lumotlarni o'z ichiga olgan commitlar mavjudligini aniqladingiz. Ushbu ma'lumotlarni butun tarixdan to'liq olib tashlash kerak. Quyidagi strategiyani ishlatish to'g'ri va xavfsiz bo'lishi mumkinligini baholang: joriy fayl versiyasidan maxfiy ma'lumotlarni olib tashlaydigan yangi commit yaratish va uni main ga yuborish. - To'g'ri, lekin optimal emas. Commitlarni bekor qilish uchun git revert dan foydalanish yaxshiroq - Shartli ravishda to'g'ri. Bu ma'lumotlarni olib tashlash uchun yanada radikal usul topilmaguncha vaqtinchalik yechim - Noto'g'ri va xavfsiz emas. Ma'lumotlar joriy versiyadan olib tashlanadi, ammo tarixda mavjud bo'lib qoladi - Noto'g'ri. Bu commit boshqa tarmoqlar bilan birlashtirishda yangi muammolarni keltirib chiqarishi mumkin - To'g'ri va xavfsiz. Ushbu usul ma'lumotlar olib tashlanishini ta'minlaydi va ular yana repositoryda paydo bo'lmaydi

Junior
183

Qaysi quyidagi bayonot kengaytirilgan Git Flow va o'zgarishlar tarixini boshqarish nuqtai nazaridan bunday harakatlarning natijalarini aks ettiradi?

Junior
181

Siz dev shoxobchasida yangi funksaga ustida ishlayapsiz. To'satdan, README.md faylida yozish xatosini tezda tuzatish uchun main shoxobchasiga o'tish zarurati yuzaga keladi. Sizda bir nechta commit qilinmagan o'zgarishlar bor: src/feature.js (indexlanmagan) va styles/main.css (indexlangan). Siz barcha o'zgarishlarni vaqtincha saqlab, keyinchalik dev shoxobchasida ularga qaytishni xohlaysiz. Buning uchun qaysi buyruqlar ketma-ketligini ishlatishingiz kerak? git stash save "WIP on feature" && git checkout main && [fix] && git checkout dev && git stash pop git stash push -m "WIP on feature" && git checkout main && [fix] && git checkout dev && git stash pop git stash && git checkout main && [fix] && git checkout dev && git stash apply git add . && git stash && git checkout main && [fix] && git checkout dev && git stash drop git commit -m "Temp commit" && git checkout main && [fix] && git checkout dev && git reset HEAD^

Junior
178

Retail do'konida toifalar bo'yicha savdolar tahlili Siz chakana do'konda tahlilchisiz. Sizning vazifangiz — toifalar bo'yicha savdolar haqida hisobot tuzish, quyidagi hisob-kitoblar bilan: • toifada sotilgan umumiy birliklar soni (total_units_sold); • chegirmalarni hisobga olgan holda toifa bo'yicha umumiy daromad, bu yerda chegirma unit_price × units_sold × (1 − discount/100) shaklida hisoblanadi. Agar chegirma NULL bo'lsa, 0% deb hisoblang. Ikki raqamli aniqlik bilan yaxlitlang; • har bir savdoda o'rtacha sotilgan birliklar soni (avg_units_per_sale), ikki raqamli aniqlik bilan yaxlitlangan; • chegirmasiz savdolar ulushi (no_discount_share) — NULL yoki 0% chegirmali savdolar soni, toifadagi umumiy savdolar soniga bo'lingan va uch raqamli aniqlik bilan yaxlitlangan. Natijalarni avvalo umumiy daromad (total_revenue) bo'yicha kamayish tartibida, keyin har bir savdoda o'rtacha sotilgan birliklar soni (avg_units_per_sale) bo'yicha oshish tartibida, va oxirida toifalar nomi bo'yicha alfavit tartibida saralang. Kiritish formati Sales jadvali: • sale_id (int) — savdoning yagona identifikatori • product_id (int) — mahsulot identifikatori • category (text) — mahsulot toifasi • sale_date (timestamp) — savdo sanasi va vaqti • units_sold (int) — sotilgan birliklar soni • unit_price (numeric) — birlik narxi • discount (numeric) — chegirma foizi, NULL bo'lishi mumkin discount ustuni bo'sh qiymatlarni o'z ichiga olishi mumkin. Chiqish formati So'rov quyidagi maydonlarni o'z ichiga olgan jadvalni qaytarishi kerak: • category (text) — mahsulot toifasi • total_units_sold (int) — bu toifada sotilgan umumiy birliklar soni • total_revenue (numeric) — toifaga ko'ra umumiy daromad, ikki raqamli aniqlik bilan yaxlitlangan • avg_units_per_sale (numeric) — har bir savdoda o'rtacha birliklar soni, ikki raqamli aniqlik bilan yaxlitlangan • no_discount_share (numeric) — chegirmasiz savdolar ulushi (0 dan 1 gacha bo'lgan qiymat), uch raqamli aniqlik bilan yaxlitlangan Natija avvalo total_revenue bo'yicha kamayish tartibida, keyin avg_units_per_sale bo'yicha oshish tartibida va oxirida toifa nomi bo'yicha alfavit tartibida saralanadi.

Junior
173

Qaysi strategiya loyihani buzadigan muhitda xavfsizlik muammosini minimal xavf bilan bartaraf etishda samarali bo'ladi? - Muammo bilan bog'liq commit va uni qisman tuzatgan barcha commitlar uchun revert commitlar seriyasini yaratish, so'ngra to'liq tuzatish bilan yangi commit yaratish - Muammo commitidan oldingi nuqtadan hotfix branch yaratish, tuzatishlar kiritish va bu branchni barcha ta'sirlangan branchlar bilan birlashtirish - Asosiy branchda git revert abc123 yordamida yagona tuzatish commitini yaratish va keyin bu commitni barcha release branchlariga cherry-pick qilish - Muammo kodini aniq aniqlash uchun git bisect dan foydalanish, patch yaratish va uni git am yordamida barcha branchlarga qo'llash - Har bir branchda muammo commitini tahrirlash uchun git rebase -i dan foydalanish, so'ngra force-push qilish (force-push)

Junior
170

[ism] matn ichida xatolar va uslubni to'g'irladi: «Salom! Men [ism], ilgari Telegramga o'tishni so'ragan eding» — odob bilan, lekin samimiy tarzda

Junior
169

Bot trafikining ulushi Antifraud jamoasi saytida bot trafikini aniqlash mexanizmini ishlab chiqdi: bot saytga kirganida, uning URL parametrlariga "bot" (katta-kichik harf farqi qilmasdan) subqatori qo'shiladi. Agar user_id dekabr oyida kamida bir marta bot sifatida aniqlangan bo'lsa, u har doim bot sifatida hisoblanadi. Foydalanuvchilarning saytga tashriflari bo'yicha ma'lumotlar to'plamini o'rganing va 2024 yil dekabr oyida umumiy foydalanuvchilar soniga nisbatan botlarning ulushini hisoblang (bir o'nlik xonaga yaxlitlang). Kirish formati Jadval visits: - event_date (date) — tashrif sanasi - user_id (int) — foydalanuvchining yagona identifikatori - url (string) — o'tish amalga oshirilgan havola Ma'lumotlar bo'sh yoki noto'g'ri qiymatlarni o'z ichiga olmaydi. Chiqish formati So'rov quyidagi maydonlarga ega jadvalni qaytarishi kerak: - share (float) — dekabr oyida umumiy foydalanuvchilar soniga nisbatan botlarning ulushi, bir o'nlik xonaga yaxlitlangan.

Junior
168
/3