Sobes.tech

Data Engineer

Analisi della frequentazione dei club di fitness Lavori come analista in una catena di club di fitness. Hai informazioni sulle visite degli utenti e sugli abbonamenti che acquistano. È necessario analizzare l’efficacia dell’utilizzo degli abbonamenti. Calcola per ogni tipo di abbonamento: • il numero totale di utenti che hanno utilizzato questo tipo di abbonamento. Considera solo user_id unici; • il numero totale di visite con questo abbonamento. Considera tutte le visite degli utenti con questo abbonamento; • la quota di utenti di questo abbonamento in percentuale rispetto al totale di utenti (arrotondata a un decimale). Per calcolare la quota, usa il rapporto tra il numero di utenti con questo abbonamento e il numero totale di utenti unici. Ogni utente può avere solo un abbonamento. Ordina il risultato per tipo di abbonamento in ordine alfabetico. Formato di input Tabella memberships: • membership_id (int) — identificativo unico dell’abbonamento • user_id (int) — identificativo unico dell’utente • membership_type (text) — tipo di abbonamento Tabella visits: • visit_id (int) — identificativo unico della visita • user_id (int) — identificativo dell’utente • visit_date (timestamp) — data e ora della visita I dati non contengono valori mancanti o errati. Formato di output La query deve restituire una tabella con i campi in questo ordine: • membership_type (text) — tipo di abbonamento • users_count (int) — numero di utenti unici con questo tipo di abbonamento • total_visits (int) — numero totale di visite degli utenti con questo abbonamento • user_share (numeric) — quota di utenti in percentuale con questo abbonamento rispetto al totale (arrotondata a 1 decimale) Il risultato viene ordinato per tipo di abbonamento in ordine alfabetico.

Junior
252

Conosci la metodologia Domain Driven Design (DDD)? Se sì, condividi esempi della sua applicazione nei tuoi progetti.

Junior
222

Quale espressione al posto di [...] porterà automaticamente alla creazione di un indice? Sulla piattaforma mobile c'è uno scorrimento orizzontale del codice create table some_table( col_name [...] ); unique references other_table(col_name) not null serial integer check (col_name > 0)

Junior
203

Come rimuovere un submodule e i file associati dal progetto? git submodule remove <percorso-al-submodule> git rm --cached <percorso-al-submodule>; rimuovere la sezione da .gitmodules; git commit git clean --submodules <percorso> git submodule delete <percorso> git remove submodule <percorso>

Junior
202

Perché la seguente query non utilizzerà l'indice se nella tabella records (id) è stato creato un normale indice B-tree su id? select * from records where id % 2 = 0 - Per id è necessario un indice di tipo GIN - Gli indici non funzionano con le espressioni in WHERE - % è un'operazione di confronto, non di filtraggio - limit e offset sono obbligatori per l'ottimizzazione con indice - La query accede a un campo numerico, non a uno di testo

Junior
199

Rapporto per l'azienda logistica Sei un analista di un'azienda logistica che tiene traccia delle operazioni nei magazzini. Devi preparare un rapporto sull'efficienza di ogni magazzino. Per ogni magazzino, calcola: • il numero totale di operazioni (count_operations); • il numero totale di prodotti elaborati nel magazzino (sum_quantity); • il tempo medio di elaborazione di un'operazione (avg_processing_time), considerando solo le operazioni con un tempo specificato (non NULL), arrotondato al numero intero più vicino; • il massimo e minimo numero di prodotti elaborati in una singola operazione (max_quantity, min_quantity); • il numero di operazioni di ogni tipo («fornitura», «spedizione», «trasferimento») in colonne separate: supply_operations, shipment_operations, transfer_operations. Filtra i magazzini con un numero totale di operazioni superiore a 2 e un tempo medio di elaborazione non superiore a 60 minuti. Ordina il risultato per ID magazzino in ordine crescente. Formato di input Tabella operations: • operation_id (int) — identificatore unico dell'operazione • warehouse_id (int) — ID del magazzino • operation_type (text) — tipo di operazione: «fornitura», «spedizione», «trasferimento» • quantity (int) — numero di unità del prodotto nell'operazione • operation_date (timestamp) — data e ora dell'operazione • processing_time (int) — tempo di elaborazione dell'operazione La colonna processing_time può contenere valori nulli. Formato di output La query deve restituire una tabella con i campi nell'ordine seguente: • warehouse_id (int) — ID unico del magazzino • count_operations (int) — numero totale di operazioni effettuate nel magazzino • sum_quantity (int) — numero totale di prodotti elaborati nel magazzino • avg_processing_time (numeric) — tempo medio di elaborazione dell'operazione (in minuti), considerando solo le operazioni con tempo non nullo, arrotondato al numero intero più vicino • max_quantity (int) — numero massimo di prodotti elaborati in una singola operazione • min_quantity (int) — numero minimo di prodotti elaborati in una singola operazione • supply_operations (int) — numero di operazioni di tipo «fornitura» • shipment_operations (int) — numero di operazioni di tipo «spedizione» • transfer_operations (int) — numero di operazioni di tipo «trasferimento»

Junior
198

Nel processo di lavoro con git bisect, ti sei trovato di fronte a un commit che non può essere verificato a causa dell'assenza dell'ambiente necessario. Cosa bisogna fare in questa situazione? - Ripetere il comando git bisect start con altri hash - Saltare questo commit con il comando git bisect skip - Resettare il bisect con il comando git bisect reset - Segnare il commit come buono con il comando git bisect good - Segnare il commit come cattivo con il comando git bisect bad

Junior
197

È stata creata una sequenza speciale chiamata even_sequence, che genera solo numeri pari. Cosa bisogna inserire al posto di [...], affinché nel caso in cui il valore di even_column non venga specificato durante l'inserimento, venga preso da 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’

Junior
196

Spiega come funziona tecnicamente Git LFS e quali vantaggi offre rispetto a Git standarde quando si lavora con file di grandi dimensioni.

Junior
194

Hai esperienza con la libreria Langchain? Quali compiti hai risolto con il suo aiuto?

Junior
193

Cosa ti piacerebbe fare nel nostro team?

Junior
191

Come consiglia Git Flow di formalizzare una nuova versione dell'applicazione? - Creando un nuovo branch issue - Creando un branch hotfix da master - Creando un branch release separato da develop - Commettendo direttamente nel branch master - Unendo direttamente il branch master in develop

Junior
183

Stai creando una visualizzazione che mostra tutti gli utenti e, se presenti, i loro ultimi ordini. Tabelle: users(id, name) e orders(id, user_id, created_at). Quale tipo di join deve essere usato per includere anche gli utenti senza ordini? CROSS JOIN RIGHT JOIN INNER JOIN FULL JOIN LEFT JOIN

Junior
182

Qual delle seguenti affermazioni riflette le conseguenze di queste azioni dal punto di vista della metodologia Git Flow estesa e della gestione della cronologia delle modifiche?

Junior
181

Hai scoperto che nella storia del repository principale di Git ci sono commit contenenti dati sensibili critici. Questi dati devono essere completamente rimossi da tutta la storia del repository. Valuta quanto sia corretto e sicuro usare la seguente strategia: creare un nuovo commit che rimuova i dati sensibili dalla versione attuale dei file e inviarlo a main. - Corretto, ma non ottimale. È meglio usare git revert per annullare i commit - Condizionatamente corretto. È una soluzione temporanea finché non si trova un mezzo più radicale per rimuovere i dati - Sbagliato e non sicuro. I dati saranno rimossi dalla versione attuale, ma rimarranno accessibili nella storia del repository - Sbagliato. Questo commit può causare nuovi conflitti durante la fusione con altri branch - Corretto e sicuro. Questo metodo garantisce che i dati saranno rimossi e non riappariranno nel repository

Junior
180

Stai lavorando su una nuova funzionalità nel ramo dev. Improvvisamente, si rende necessario passare rapidamente al ramo main per correggere un errore di battitura nel file README.md. Hai alcune modifiche non ancora aggiunte: in src/feature.js (non staged) e styles/main.css (staged). Vuoi salvare temporaneamente tutte queste modifiche per poi riprenderle nel ramo dev. Quale sequenza di comandi dovresti usare per questo? 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
176

Analisi delle vendite per categorie di prodotti in un negozio al dettaglio Sei un analista in un negozio al dettaglio. Il tuo compito è creare un rapporto di vendita per categorie con i seguenti calcoli: • quantità totale di unità vendute nella categoria (total_units_sold); • ricavo totale per categoria, considerando gli sconti, dove lo sconto si calcola come unit_price × units_sold × (1 − discount/100). Se lo sconto è assente (NULL), si considera 0%. Arrotondare a due decimali; • media delle unità vendute per vendita (avg_units_per_sale), arrotondata a due decimali; • quota di vendite senza sconto (no_discount_share) — numero di vendite con NULL o 0% di sconto, diviso per il totale delle vendite nella categoria, arrotondato a tre decimali. Ordina prima i risultati per ricavo totale (total_revenue) in ordine decrescente, poi per media delle unità per vendita (avg_units_per_sale) in ordine crescente, e infine per nome della categoria in ordine alfabetico. Formato di input Tabella sales: • sale_id (int) — identificativo unico di vendita • product_id (int) — identificativo del prodotto • category (text) — categoria del prodotto • sale_date (timestamp) — data e ora di vendita • units_sold (int) — unità vendute • unit_price (numeric) — prezzo per unità • discount (numeric) — sconto in percentuale, può essere NULL La colonna discount può contenere valori nulli. Formato di output La query deve restituire una tabella con i campi in questo ordine: • category (text) — categoria del prodotto • total_units_sold (int) — quantità totale di unità vendute in questa categoria • total_revenue (numeric) — ricavo totale per categoria, arrotondato a due decimali • avg_units_per_sale (numeric) — media delle unità per vendita, arrotondata a due decimali • no_discount_share (numeric) — quota di vendite senza sconto (valore tra 0 e 1), arrotondata a tre decimali Il risultato deve essere ordinato prima per total_revenue in ordine decrescente, poi per avg_units_per_sale in ordine crescente, e infine per nome della categoria in ordine alfabetico.

Junior
173

[nome] ha corretto errori e stile nel testo: «Ciao! Sono [nome], hai chiesto di passare a Telegram» — in modo informale, ma rispettoso

Junior
169

Hai esperienza con il framework web Gin? Raccontaci più nel dettaglio quali compiti hai risolto con esso.

Junior
168

Quale strategia sarebbe efficace per eliminare la vulnerabilità in tutti i rami con il minimo rischio di interrompere il funzionamento del progetto? - Creare una serie di commit di revert per il commit problematico e tutti i commit che lo hanno parzialmente corretto, quindi creare un nuovo commit con la correzione completa - Creare un ramo hotfix da un punto precedente al commit problematico, apportare le correzioni e unire questo ramo con tutti i rami interessati - Creare un singolo commit correttivo usando git revert abc123 sul ramo principale e poi fare cherry-pick di questo commit su tutti i rami di rilascio - Usare git bisect per determinare esattamente il codice problematico, creare una patch e applicarla a tutti i rami usando git am - Usare git rebase -i per modificare il commit problematico in ogni ramo, seguito da un push forzato (force-push)

Junior
168
/3