Fitnessi klubide külastuste analüüs Te töötate analüütikuna fitnessi klubide võrgustikus. Teil on teave kasutajate külastuste ja nende ostetud liikmelisuste kohta. On vaja analüüsida liikmelisuste tõhusust. Arvutage iga liikmelisuse tüübi kohta: • selle liikmelisuse kasutanud unikaalsete user_id-de koguarv; • selle liikmelisusega tehtud külastuste koguarv. Arvestage kõiki selle liikmelisusega kasutajate külastusi; • selle liikmelisuse kasutajate osakaal protsentides kogu kasutajate arvust (ümardatuna ühe komakoha võrra). Arvutamiseks kasutage selle liikmelisuse kasutajate arvu kogu unikaalsete kasutajate arvuga. Iga kasutaja võib omada ainult ühte liikmelisust. Tulemuse sorteerige liikmelisuse tüübi järgi tähestikulises järjekorras. Sisendvorming Liikmelisuste tabel: • membership_id (int) — unikaalne liikmelisuse ID • user_id (int) — kasutaja ID • membership_type (text) — liikmelisuse tüüp Külastuste tabel: • visit_id (int) — külastuse unikaalne ID • user_id (int) — kasutaja ID • visit_date (timestamp) — külastuse kuupäev ja kellaaeg Andmed ei sisalda tühje või valeväärtusi. Väljundi formaat Päring peaks tagastama tabeli koos väljadega järjekorras: • membership_type (text) — liikmelisuse tüüp • users_count (int) — selle liikmelisuse tüüpi unikaalsete kasutajate arv • total_visits (int) — selle liikmelisusega tehtud külastuste koguarv • user_share (numeric) — selle liikmelisuse kasutajate osakaal protsentides kogu kasutajate arvust (ümardatuna ühe komakoha võrra) Tulemus sorteeritakse liikmelisuse tüübi järgi tähestikulises järjekorras.
Data Engineer
Kas te tunnete Domain Driven Design (DDD) metoodikat? Kui jah, jagage näiteid selle rakendamisest teie projektides.
Kuidas eemaldada alammodul ja sellega seotud failid projektist? git submodule remove <alammoduli-tee> git rm --cached <alammoduli-tee>; eemalda sektsioon .gitmodules failist; git commit git clean --submodules <tee> git submodule delete <tee>
Milline väljend asendusel [...] automaatselt loob indeksi? Mobiilplatvormil on horisontaalne koodi kerimine create table some_table( col_name [...] ); unique references other_table(col_name) not null serial integer check (col_name > 0)
Aruanne logistikafirmale Olete logistikafirma analüütik, kes jälgib laoseadete operatsioonide arvestust. Teil on vaja koostada aruannet iga laosea tõhususe kohta. Iga laosea kohta arvutage: • koguarv operatsioone (count_operations); • laoseal töödeldud kaupade koguarv (sum_quantity); • keskmine operatsiooni töötlemisaeg (avg_processing_time), arvestades ainult neid operatsioone, millel on määratud aeg (mitte NULL), ümardatuna täisarvuks; • maksimaalne ja minimaalne kaupade arv, töödeldud ühes operatsioonis (max_quantity, min_quantity); • iga tüüpi operatsioonide arv («tarne», «saadetis», «liikumine») eraldi veergudes: supply_operations, shipment_operations, transfer_operations. Filtreerige laosead, mille koguarv operatsioone on suurem kui 2 ja keskmine töötlemisaeg ei ületa 60 minutit. Sorteerige tulemust laosea ID järgi kasvavas järjekorras. Sisendvorming Operatsioonide tabel: • operation_id (int) — operatsiooni unikaalne identifikaator • warehouse_id (int) — laosea identifikaator • operation_type (text) — operatsiooni tüüp: «tarne», «saadetis», «liikumine» • quantity (int) — kaupade arv operatsioonis • operation_date (timestamp) — operatsiooni kuupäev ja kellaaeg • processing_time (int) — operatsiooni töötlemisaeg Veerg processing_time võib sisaldada tühje väärtusi. Väljundi formaat Küsimus peaks tagastama tabeli järgmiste väljadega järjekorras: • warehouse_id (int) — laosea unikaalne identifikaator • count_operations (int) — laoseal tehtud operatsioonide koguarv • sum_quantity (int) — laoseal töödeldud kaupade koguarv • avg_processing_time (numeric) — operatsiooni keskmine töötlemisaeg (minutites), arvestades ainult mitte-NULL väärtusi, ümardatuna täisarvuks • max_quantity (int) — ühe operatsiooni jooksul töödeldud suurim kaupade arv • min_quantity (int) — ühe operatsiooni jooksul töödeldud väikseim kaupade arv • supply_operations (int) — «tarne» operatsioonide arv • shipment_operations (int) — «saadetis» operatsioonide arv • transfer_operations (int) — «liikumine» operatsioonide arv
Git bisect tööprotsessis kohtasite commit'i, mida ei saa kontrollida vajaliku keskkonna puudumise tõttu. Mida selles olukorras teha? - Korrake käsku git bisect start teiste hashidega - Hüppa üle selle commit'i käsuga git bisect skip - Lähtestage bisect käsuga git bisect reset - Märkige commit kui hea käsuga git bisect good - Märkige commit kui halb käsuga git bisect bad
Miks järgmine päring ei kasuta indeksit, kui tabelis records (id) on loodud tavaline B-Tree indeks id jaoks? select * from records where id % 2 = 0 - Id jaoks on vaja GIN tüüpi indeksit - Indeksid ei tööta väljenditega WHERE - % on võrdlusoperatsioon, mitte filtreerimine - limit ja offset on kohustuslikud indeksi optimeerimiseks - Päring viitab numbrilisele väljale, mitte tekstiväljale
Selgitage, kuidas tehniliselt töötab Git LFS ja milliseid eeliseid see pakub võrreldes tavalise Git-iga suuremate failide töötlemisel.
Eri spetsiaalne jada nimega even_sequence, mis genereerib ainult paarisarvud. Mida tuleks panna [...]-i asemele, et juhul, kui even_column väärtust ei ole sisestamisel määratud, võetakse väärtus even_sequence'ist? 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’
Kas teil on kogemusi Langchain'i raamatukoguga töötamisel? Milliseid ülesandeid sa selle abiga lahendasid?
Mida soovite teha meie meeskonnas?
Millist liiki ühendust tuleks kasutada, et valikus oleksid nii kasutajad kui ka nende viimased tellimused? Tabelid: users(id, name) ja orders(id, user_id, created_at). CROSS JOIN RIGHT JOIN INNER JOIN FULL JOIN LEFT JOIN
Milline järgmistest väidetest peegeldab selliste toimingute tagajärgi laiendatud Git Flow ja muudatuste ajaloo haldamise vaatenurgast?
Kuidas soovitab Git Flow ametlikult vormistada uue rakenduse väljaandmise? - Uue issue-haru loomisega - Hotfix-haru loomisega masterist - Eraldi release-haru loomisega developist - Otse commit'iga masteri harusse - Otse masteri haru ühendamisega developiga
Olete avastanud, et põhihalduri Git ajaloolises on commit'id, mis sisaldavad kriitilisi konfidentsiaalseid andmeid. Neid andmeid tuleb täielikult eemaldada kogu ajaloo jooksul. Hinnake, kui õigustatud ja ohutu oleks kasutada järgmist strateegiat: luua uus commit, mis eemaldab konfidentsiaalseid andmeid praegusest failiversioonist ja saata see maini. - Õige, kuid mitte optimaalne. On parem kasutada git revert'i commit'ide tühistamiseks - Tingimuslikult õige. See on ajutine lahendus, kuni leitakse radikaalsem viis andmete eemaldamiseks - Vale ja ebaohutu. Andmed eemaldatakse praegusest versioonist, kuid jäävad kättesaadavaks ajaloolises salves - Vale. See commit võib põhjustada uusi konflikte teiste harudega ühendamisel - Õige ja ohutu. See meetod tagab, et andmed eemaldatakse ja neid ei kuvata enam salves
Te töötate dev haru peal uue funktsiooni kallal. Äkki tekib vajadus kiiresti vahetada main harule, et kiiresti parandada README.md failis kirjaviga. Teil on mõned mitte-commititud muudatused: src/feature.js (mitte-indexitud) ja styles/main.css (indeksitud). Soovite ajutiselt salvestada kõik need muudatused, et hiljem neile tagasi pöörduda dev harul. Millist käskude jada peaksite selle jaoks kasutama? 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^
Müügitulemuste analüüs kategooriate kaupa jaotuses kaupluses Te töötate analüütikuna ja teie ülesandeks on koostada müügitulemuste aruanne kategooriate kaupa arvutustega: • kategoorias müüdud ühikute koguarv (total_units_sold); • kategooria kogutulu, ar arvestu ar allahindlust, kus allahindlus rakendub kui unit_price × units_sold × (1 − discount/100). Kui allahindlus puudub (NULL), arvesta see 0%. Rõhutada kuni kahe kümnendkoha kohani; • keskmine müüdud ühikute arv ühe müügi kohta (avg_units_per_sale), ümardatuna kuni kahe kümnendkoha kohani; • müükide osakaal ilma allahindluseta (no_discount_share) — müükide arv NULL või 0% allahindlusega, jagatuna kogu müügimahtuga kategoorias, ümardatuna kolme kümnendkoha kohani: Esmalt sorteerige tulemus mahult vähenevaks total_revenue järgi, siis kasvavalt keskmise ühikute arvu (avg_units_per_sale) järgi ja lõpuks kategooria nime alfabeta järjestuses: Sisendvorming Müüg tabel: • sale_id (int) — unikaalne müügi identifikaator • product_id (int) — toote identifikaator • category (text) — toote kategooria • sale_date (timestamp) — müügi kuupäev ja kellaaeg • units_sold (int) — müüdud ühikute arv • unit_price (numeric) — ühe ühiku hind • discount (numeric) — toote allahindlus protsentides, võib olla NULL Allahindluse veerg võib sisaldada tühje väärtusi: Väljundi formaat Päring peab tagastama tabeli järgmiste väljadega järjekorras: • category (text) — toote kategooria • total_units_sold (int) — selle kategooria müüdud ühikute koguarv • total_revenue (numeric) — kategooria kogutulu, arvestades allahindlusi, ümardatud kahe kümnendkoha kohani • avg_units_per_sale (numeric) — keskmine ühikute arv ühes tellimuses, ümardatud kahe kümnendkoha kohani • no_discount_share (numeric) — allahindluseta müükide osakaal, vahemikus 0 kuni 1, ümardatud kolme kümnendkoha kohani Tulemust sorteeritakse esmalt mahult vähenevaks total_revenue järgi, siis kasvavalt avg_units_per_sale järgi ja lõpuks kategooria nime alfabeta järjestuses.
[nimi] parandas vead ja stiili tekstis: «Tere! Mina olen [nimi], sa varem palunud üle minna Telegrami» — lugupidavalt, kuid sõbralikult
Kas teil on kogemusi Gin veebiraamistikuga? Rääkige meile üksikasjalikumalt, milliseid ülesandeid te selle abil lahendasite.
PostgreSQL-is on vaja optimeerida tehingute jõudlust minimaalise isolatsioonitasemega, kus: • paralleelsed tehingud näevad üksteise lõpetamata muudatusi; • on võimalik "mustad lugemised" (dirty read). Millist isolatsioonitaset tuleb tehingu jaoks määrata, et saavutada see eesmärk? must lugemine ei ole PostgreSQL-is võimalik repeatable read read uncommitted read committed serializable