Sobes.tech

Data Analyst

Due prigionieri in celle diverse lanciano una moneta e, vedendo solo il risultato della propria moneta, devono indovinare il risultato della moneta del vicino. Se almeno uno indovina, entrambi vengono liberati; se entrambi sbagliano, vengono uccisi. Quale strategia di risposte devono scegliere per sopravvivere con il 100% di probabilità?

Middle
164

Proponi un algoritmo che, utilizzando i dati sul traffico delle chiamate e la geolocalizzazione degli abbonati ogni 15 minuti, determini se due abbonati vivono insieme.

Middle
128

Come misurare esattamente 4 litri usando contenitori da 3 e 5 litri e una fonte d'acqua illimitata?

Middle
126

Conosci la statistica matematica e hai applicato i test A/B nella pratica? Quali tipi di medie conosci?

Middle
125

Quale simbolo bisogna indicare dopo SELECT per selezionare tutte le colonne?

Middle
125

Come lasciare solo le categorie con un fatturato totale superiore a 100 rubli?

Middle
122

Hai mai lavorato con Git?

Middle
114

I risultati restituiti dalle seguenti query saranno diversi? 1 select * from A left join B on A.id = B.id and B.val = 'A' 2 select * from A left join B on A.id = B.id where B.val = 'A'

Middle
113

Proponi un algoritmo per determinare il giorno di nascita dell'abbonato, avendo solo il registro chiamate e SMS: numeri in entrata e in uscita, data e ora, durata e tipo di evento.

Middle
103

Vengono presentate le tabelle product (informazioni su a quale categoria appartiene il prodotto in un intervallo di date specificato) e sale (dati di vendita del prodotto con data di vendita, prezzo per unità e quantità acquistata): select * from product |prod_nm |prod_cat |eff_dt |exp_dt | |--------|---------|-----------|-----------| |Prodotto 1|Categoria 1|[phone]|[phone]| |Prodotto 1|Categoria 2|[phone]|[phone]| |Prodotto 2|Categoria 3|[phone]|[phone]| select * from sale |sale_dt |prod_nm |price|cnt| |----------|---------|-----|---| |[phone]|Prodotto 1|10 |5 | |[phone]|Prodotto 1|15 |2 | |[phone]|Prodotto 4|15 |2 | |[phone]|Prodotto 3|15 |2 | |[phone]|Prodotto 2|10.9 |300| |[phone]|Prodotto 1|12.7 |7 | È necessario scrivere una query che restituisca il ricavo totale per ogni categoria: |prod_cat |total_amt| |----------|---------| |Categoria 1|80 | |Categoria 2|84 | |Categoria 3|270 |

Middle
102

È necessario scrivere una query che restituisca il ricavo totale per ogni categoria: |prod_cat |total_amt | |Categoria 1|80 | |Categoria 2|84 | |Categoria 3|270 | Esiste una tabella di abbonati con record arrivati in momenti diversi. La data di caricamento del record è definita nel campo raw_dt: select * from abnt |id |msisdn |tarif_plan_id|account_id|raw_dt | |1 |[phone]|4375 |4979 |[phone]| |1 |[phone]|5842 |4979 |[phone]| |2 |[phone]|5842 |589783|[phone]| |2 |[phone]|4563 |5326 |[phone]| |2 |[phone]|4563 |0832 |[phone]| |3 |[phone]|4563 |0832 |[phone]| |3 |[phone]|5495 |7485 |[phone]| |3 |[phone]|4563 |0832 |[phone]| |3 |[phone]|4563 |0832 |[phone]| È necessario scrivere una query che restituisca la penultima registrazione caricata per chiave id: |id |msisdn |tarif_plan_id|account_id|raw_dt | |1 |[phone]|5842 |4979 |[phone]| |2 |[phone]|4563 |0832 |[phone]| |3 |[phone]|4563 |0832 |[phone]| Esiste una tabella di abbonati con storico delle modifiche. Ogni record è valido nel periodo da valid_from_dt a valid_to_dt. Se un record viene chiuso, il successivo inizia nello stesso giorno. Per ogni abbonato, deve esserci un solo record attivo nell’intervallo [valid_from_dt, valid_to_dt]. select * from abnt |id |valid_from_dt|valid_to_dt|msisdn |tarif_plan_id|account_id| |1 |[phone] |[phone] |[phone]|4375 |4979 | |2 |[phone] |[phone] |[phone]|5842 |589783| |2 |[phone] |[phone] |[phone]|4563 |5326 | |3 |[phone] |[phone] |[phone]|4563 |0832 | È necessario scrivere una query che restituisca i record con una data di chiusura errata: |id |valid_from_dt|valid_to_dt|msisdn |tarif_plan_id|account_id| |2 |[phone] |[phone] |[phone]|5842 |4979 | |2 |[phone] |[phone] |[phone]|4563 |5326 | con ranked as ( select msisdn, tarif_plan_id, account_id, raw_dt, row_number() over (partition by id order by raw_dt desc) as rn ) select id, msisdn, tarif_plan_id, account_id, raw_dt from ranked where rn = 2 order by id

Middle
101

Come classificare le vendite di prodotti che non rientrano in nessuna categoria, nella categoria "Altro"?

Middle
100

Nella stanza ci sono tre lampadine e tre interruttori all'esterno. Tutti sono spenti e si può entrare nella stanza solo una volta. Come determinare quale interruttore controlla ogni lampadina?

Middle
92

È necessario scrivere una query che restituisca la penultima registrazione caricata per la chiave id: |id |msisdn |tarif_plan_id|account_id|raw_dt | |------------|-----------|-------------|----------|-----------| |[phone]|5842 |4979 |[phone]| |[phone]|4563 |0832 |[phone]| |[phone]|4563 |0832 |[phone]| C'è una tabella di abbonati con storico delle modifiche. Ogni record per abbonato è valido nel periodo da valid_from_dt a valid_to_dt. Se un record viene chiuso, il successivo inizia nella stessa data. Per ogni abbonato, dovrebbe esserci solo un record attivo nell'intervallo [valid_from_dt, valid_to_dt]. select * from abnt |id|valid_from_dt|valid_to_dt|msisdn |tarif_plan_id|account_id| |--|-------------|-----------|-------------|-------------|----------| |1 |[phone] |[phone] |[phone] |4375 |4979 | |1 |[phone] |[phone] |[phone] |5842 |4979 | |2 |[phone] |[phone] |[phone] |4563 |5326 | |2 |[phone] |[phone] |[phone] |4563 |0832 | È necessario scrivere una query che restituisca i record con date di chiusura errate. |id|valid_from_dt|valid_to_dt|msisdn |tarif_plan_id|account_id| |--|-------------|-----------|-------------|-------------|----------| |1 |[phone] |[phone] |[phone] |5842 |4979 | |2 |[phone] |[phone] |[phone] |4563 |5326 |

Middle
78