Analýza návštevnosti fitness klubov Pracujete ako analytik v sieti fitness klubov. Máte informácie o návštevách používateľov a o predplatných, ktoré kupujú. Je potrebné analyzovať efektívnosť využívania predplatných. Vypočítajte pre každý typ predplatného: • celkový počet používateľov, ktorí tento typ predplatného použili. Zvážte iba jedinečné user_id; • celkový počet návštev pre toto predplatné. Zvážte všetky návštevy používateľov s týmto predplatným; • podiel používateľov tohto predplatného v percentách z celkového počtu používateľov (zaokrúhlené na jedno desatinné miesto). Na výpočet použite pomer medzi počtom používateľov s týmto predplatným a celkovým počtom jedinečných používateľov. Každý používateľ môže mať iba jedno predplatné. Výsledok zoradte podľa typu predplatného abecedne.
Data Engineer
Poznáte metodológiu Domain Driven Design (DDD)? Ak áno, podeľte sa o príklady jej použitia vo vašich projektoch.
Ako odstrániť podmodul a súvisiace súbory z projektu? git submodule remove <cesta-k-podmodulu> git rm --cached <cesta-k-podmodulu>; odstrániť sekciu z .gitmodules; git commit git clean --submodules <cesta> git submodule delete <cesta> git remove submodule <cesta>
Ktorý výraz na mieste [...] automaticky spôsobí vytvorenie indexu? Na mobilnej platforme je horizontálne posúvanie kódu create table some_table( col_name [...] ); unique references other_table(col_name) not null serial integer check (col_name > 0)
Prečo nasledujúci dopyt nebude používať index, ak v tabuľke records (id) je vytvorený bežný B-strom index na id? select * from records where id % 2 = 0 - Pre id je potrebný index typu GIN - Indexy nepracujú s výrazmi v WHERE - % je operácia porovnania, nie filtrovania - limit a offset sú povinné pre optimalizáciu s indexom - Dopyt odkazuje na číselné pole, nie na textové pole
Počas práce s git bisect narazili ste na commit, ktorý nie je možné overiť kvôli chýbajúcemu prostrediu. Čo je potrebné urobiť v tejto situácii? - Opakujte príkaz git bisect start s inými hashmi - Preskočte tento commit príkazom git bisect skip - Resetujte bisect príkazom git bisect reset - Označte commit ako dobrý príkazom git bisect good - Označte commit ako zlý príkazom git bisect bad
Správa pre logistickú spoločnosť Ste analytik v logistickej spoločnosti, ktorá zaznamenáva operácie na skladoch. Musíte vypracovať správu o efektívnosti každého skladu. Pre každý sklad vypočítajte: • celkový počet operácií (count_operations); • celkový počet spracovaných tovarov na sklade (sum_quantity); • priemerný čas spracovania operácie (avg_processing_time), pričom sa berú do úvahy iba operácie s uvedeným časom (nie NULL), zaokrúhlený na celé číslo; • maximálny a minimálny počet tovarov spracovaných v jednej operácii (max_quantity, min_quantity); • počet operácií každého typu («dodávka», «odoslanie», «presun») v samostatných stĺpcoch: supply_operations, shipment_operations, transfer_operations. Filtrovať sklady, ktorých celkový počet operácií je viac ako 2 a priemerný čas spracovania nepresahuje 60 minút. Usporiadať výsledok podľa ID skladu vzostupne. Formát vstupu Tabuľka operations: • operation_id (int) — jedinečný identifikátor operácie • warehouse_id (int) — ID skladu • operation_type (text) — typ operácie: «dodaní», «odoslaní», «presun» • quantity (int) — počet jednotiek tovaru v operácii • operation_date (timestamp) — dátum a čas operácie • processing_time (int) — čas spracovania operácie Stĺpec processing_time môže obsahovať hodnoty NULL. Formát výstupu Dotaz by mal vrátiť tabuľku s poľami v nasledovnom poradí: • warehouse_id (int) — jedinečný ID skladu • count_operations (int) — celkový počet operácií vykonaných v sklade • sum_quantity (int) — celkový počet spracovaných tovarov v sklade • avg_processing_time (numeric) — priemerný čas spracovania operácie (v minútach), pričom sa berú do úvahy iba operácie s nenulovým časom, zaokrúhlené na celé číslo • max_quantity (int) — maximálny počet tovarov spracovaných v jednej operácii • min_quantity (int) — minimálny počet tovarov spracovaných v jednej operácii • supply_operations (int) — počet operácií typu «dodaní» • shipment_operations (int) — počet operácií typu «odoslaní» • transfer_operations (int) — počet operácií typu «presun»
Bola vytvorená špeciálna sekvencia s názvom even_sequence, ktorá generuje iba párne čísla. Čo treba vložiť na miesto [...], aby v prípade, že hodnota even_column nebola pri vkladaní uvedená, bola použitá hodnota z even_sequence? 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’
Vysvetlite, ako technicky funguje Git LFS a aké výhody prináša v porovnaní so štandardným Gitom pri práci s veľkými súbormi.
Máte skúsenosti s knižnicou Langchain? Aké úlohy ste riešili s jej pomocou?
Čo by ste chceli robiť v našom tíme?
Aký typ spojenia je potrebné použiť, aby sa do výberu dostali aj tí používatelia, ktorí nemajú žiadne objednávky? Tabuľky: users(id, name) a orders(id, user_id, created_at). CROSS JOIN RIGHT JOIN INNER JOIN FULL JOIN LEFT JOIN
Ako odporúča Git Flow, ako má byť oficiálne zaznamenaná nová verzia aplikácie? - Vytvorením novej issue vetvy - Vytvorením hotfix vetvy od master - Vytvorením samostatnej release vetvy od develop - Priamy commit do vetvy master - Priame zlúčenie vetvy master do develop
Ktoré z nasledujúcich tvrdení odráža dôsledky takýchto akcií z pohľadu rozšíreného Git Flow a správy histórie zmien?
Zistili ste, že v histórii hlavného Git repozitára sú commity obsahujúce kritické dôverné údaje. Tieto údaje je potrebné úplne odstrániť z celej histórie repozitára. Zhodnoťte, ako správne a bezpečné by bolo použiť nasledujúcu stratégiu: vytvoriť nový commit, ktorý odstráni dôverné údaje z aktuálnej verzie súborov a odoslať ho do main. - Správne, ale nie optimálne. Je lepšie použiť git revert na vrátenie commitov - Podmienene správne. Ide o dočasné riešenie, kým nebude nájdený radikálnejší spôsob odstránenia údajov - Nesprávne a nezabezpečené. Údaje budú odstránené z aktuálnej verzie, ale zostanú dostupné v histórii repozitára - Nesprávne. Tento commit môže spôsobiť nové konflikty pri zlúčení s inými vetvami - Správne a bezpečné. Táto metóda zabezpečuje, že údaje budú odstránené a už sa neobjavia v repozitári
Pracujete na novej funkcii vo vetve dev. Zrazu je potrebné rýchlo prepnúť na vetvu main, aby ste rýchlo opravili pravopisnú chybu v súbore README.md. Máte niekoľko nezapísaných zmien: v src/feature.js (neindexované) a styles/main.css (indexované). Chcete tieto zmeny dočasne uložiť, aby ste sa k nim mohli neskôr vrátiť vo vetve dev. Akú sekvenciu príkazov by ste mali použiť na to? 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^
Analýza predaja podľa kategórií výrobkov v maloobchode Pracujete ako analytik v maloobchode. Vašou úlohou je vytvoriť správu o predaji podľa kategórií s nasledujúcimi výpočtami: • celkový počet predaných jednotiek v kategórii (total_units_sold); • celkový príjem podľa kategórie, zohľadňujúc zľavy, kde zľava sa počíta ako unit_price × units_sold × (1 − discount/100). Ak je zľava NULL, považuje sa za 0%. Zaokrúhli na dve desatinné miesta; • priemerný počet predaných jednotiek na predaj (avg_units_per_sale), zaokrúhlený na dve desatinné miesta; • podiel predajov bez zľavy (no_discount_share) — počet predajov s NULL alebo 0% zľavou, delený celkovým počtom predajov v kategórii, zaokrúhlený na tri desatinné miesta. Usporiadajte výsledky najskôr podľa celkových príjmov (total_revenue) zostupne, potom podľa priemerného počtu jednotiek na predaj (avg_units_per_sale) vzostupne, a nakoniec podľa názvu kategórie abecedne. Formát vstupu Tabuľka sales: • sale_id (int) — jedinečný identifikátor predaja • product_id (int) — identifikátor produktu • category (text) — kategória produktu • sale_date (timestamp) — dátum a čas predaja • units_sold (int) — predané jednotky • unit_price (numeric) — cena za jednotku • discount (numeric) — zľava v percentách, môže byť NULL Stĺpec discount môže obsahovať chýbajúce hodnoty. Formát výstupu Dotaz by mal vrátiť tabuľku so stĺpcami v tomto poradí: • category (text) — kategória produktu • total_units_sold (int) — celkový počet predaných jednotiek v tejto kategórii • total_revenue (numeric) — celkový príjem podľa kategórie, zaokrúhlený na dve desatinné miesta • avg_units_per_sale (numeric) — priemerný počet jednotiek na predaj, zaokrúhlený na dve desatinné miesta • no_discount_share (numeric) — podiel predajov bez zľavy (hodnota medzi 0 a 1), zaokrúhlený na tri desatinné miesta Výsledok by mal byť zoradený najskôr podľa total_revenue zostupne, potom podľa avg_units_per_sale vzostupne, a nakoniec podľa názvu kategórie abecedne.
[ime] opravil napake in stil v besedilu: «Živjo! Sem [ime], prej si prosil, naj preideš na Telegram» — v neformalnem, a spoštljivem tonu
Máte skúsenosti s webovým rámcom Gin? Povedzte nám podrobnejšie, aké úlohy ste riešili s jeho pomocou.
Podiel botovského prenosu Tím na boj proti podvodom vyvinul mechanizmus na detekciu botovského prenosu na stránke obchodu: keď bot vstúpi na stránku, do parametrov jeho URL sa pridá podreťazec "bot" (bez rozlíšenia veľkých a malých písmen). Ak bol user_id aspoň raz v decembri identifikovaný ako bot, mal by byť vždy považovaný za bot. Preskúmajte súbor údajov o návštevách používateľov na stránke a vypočítajte podiel botov z celkového počtu používateľov v decembri 2024 (zaokrúhlite na jedno desatinné miesto). Formát vstupu Tabuľka visits: - event_date (date) — dátum návštevy - user_id (int) — jedinečný identifikátor používateľa - url (string) — odkaz, cez ktorý bola návšteva vykonaná Dáta neobsahujú chýbajúce alebo nesprávne hodnoty. Formát výstupu Dopyt by mal vrátiť tabuľku s poliami: - share (float) — podiel botov z celkového počtu používateľov v decembri, zaokrúhlený na jedno desatinné miesto.