Sobes.tech

Data Analyst

Dva vězni v různých celách hází mincí a, a vidí pouze výsledek své vlastní mince, musí odhadnout výsledek mince svého souseda. Pokud alespoň jeden odhadne správně, jsou oba propuštěni; pokud oba udělají chybu, jsou zabiti. Jakou strategii odpovědí by měli zvolit, aby přežili s 100% pravděpodobností?

Middle
161

Navrhněte algoritmus, který na základě dat o telefonním provozu a geolokace předplatitelů každých 15 minut určí, zda dva předplatitelé spolu žijí.

Middle
128

Jaký symbol je třeba uvést po SELECT pro výběr všech sloupců?

Middle
125

Znáte matematickou statistiku a používali jste A/B testování v praxi? Jaké druhy průměrů znáte?

Middle
124

Jak přesně změřit 4 litry pomocí nádob o objemu 3 a 5 litrů a neomezeného zdroje vody?

Middle
123

Jak nechat pouze kategorie, jejichž celkový obrat je větší než 100 rublů?

Middle
120

Pracoval jste někdy s Gitem?

Middle
114

Budou se výsledky vrácené následujícími dotazy lišit? 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

Navrhněte algoritmus pro určení dne narození předplatitele, pouze na základě záznamu hovorů a SMS: příchozí a odchozí čísla, datum a čas, délka a typ události.

Middle
101

Představeny jsou tabulky product (informace o tom, do které kategorie produkt patří v daném časovém intervalu) a sale (údaje o prodeji produktu s datem prodeje, cenou za jednotku a počtem zakoupených jednotek): select * from product |prod_nm |prod_cat |eff_dt |exp_dt | |--------|---------|-----------|-----------| |Produkt 1|Kategorie 1|[phone]|[phone]| |Produkt 1|Kategorie 2|[phone]|[phone]| |Produkt 2|Kategorie 3|[phone]|[phone]| select * from sale |sale_dt |prod_nm |price|cnt| |----------|---------|-----|---| |[phone]|Produkt 1|10 |5 | |[phone]|Produkt 1|15 |2 | |[phone]|Produkt 4|15 |2 | |[phone]|Produkt 3|15 |2 | |[phone]|Produkt 2|10.9 |300| |[phone]|Produkt 1|12.7 |7 | Je potřeba napsat dotaz, který vrátí celkový příjem za každou kategorii: |prod_cat |total_amt| |----------|---------| |Kategorie 1|80 | |Kategorie 2|84 | |Kategorie 3|270 |

Middle
101

Jak zařadit prodeje produktů, které nepatří do žádné kategorie, do kategorie „Ostatní“?

Middle
100

Je nutné napsat dotaz, který vrátí celkové příjmy za každou kategorii: |prod_cat |total_amt | |Kategorie 1|80 | |Kategorie 2|84 | |Kategorie 3|270 | Existuje tabulka předplatitelů s záznamy, které přišly v různých časech. Datum nahrání záznamu je určeno v poli 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]| Je nutné napsat dotaz, který vrátí předposlední nahraný záznam podle klíče 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]| Existuje tabulka s historií změn předplatitelů. Každý záznam je platný od valid_from_dt do valid_to_dt. Pokud je záznam uzavřen, následující začíná ve stejný den. Pro každého předplatitele by měl být pouze jeden aktivní záznam v rozmezí [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 | Je nutné napsat dotaz, který vrátí záznamy s nesprávným datem uzávěrky: |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 | s 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
100

V místnosti jsou tři žárovky a venku tři vypínače. Všechny jsou vypnuté a do místnosti lze vstoupit pouze jednou. Jak určit, který vypínač ovládá kterou žárovku?

Middle
92

Je nutné napsat dotaz, který vrátí předposlední načtený záznam podle klíče id: |id |msisdn |tarif_plan_id|account_id|raw_dt | |------------|-----------|-------------|----------|-----------| |[phone]|5842 |4979 |[phone]| |[phone]|4563 |0832 |[phone]| |[phone]|4563 |0832 |[phone]| Existuje tabulka předplatitelů s historií změn. Každý záznam pro předplatitele je platný v období od valid_from_dt do valid_to_dt. Pokud je záznam uzavřen, následující začíná ve stejný den. Pro každého předplatitele by měl být pouze jeden aktivní záznam v intervalu [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 | Je nutné napsat dotaz, který vrátí záznamy s nesprávným datem uzavření. |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
77