Zwei Gefangene in verschiedenen Zellen werfen jeweils eine Münze und, nur den Ausgang ihrer eigenen Münze sehend, müssen das Ergebnis der Münze ihres Nachbarn vorhersagen. Wenn mindestens einer richtig liegt, werden beide freigelassen; wenn beide falsch liegen, werden sie getötet. Welche Antwortstrategie sollten sie wählen, um mit 100%iger Wahrscheinlichkeit zu überleben?
Data Analyst
Schlagen Sie einen Algorithmus vor, der anhand von Anrufverkehrsdaten und Geolokalisierung der Teilnehmer alle 15 Minuten bestimmt, ob zwei Teilnehmer zusammenleben.
Wie misst man genau 4 Liter mit 3- und 5-Liter-Behältern und einer unbegrenzten Wasserquelle?
Kennen Sie mathematische Statistik und haben Sie A/B-Tests in der Praxis angewendet? Welche Arten von Mittelwerten kennen Sie?
Welches Symbol muss nach SELECT angegeben werden, um alle Spalten auszuwählen?
Wie lässt man nur Kategorien übrig, deren Gesamtumsatz mehr als 100 Rubel beträgt?
Haben Sie schon einmal mit Git gearbeitet?
Werden die Ergebnisse, die von den folgenden Abfragen zurückgegeben werden, unterschiedlich sein? 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'
Schlagen Sie einen Algorithmus vor, um den Geburtstag des Teilnehmers zu bestimmen, basierend nur auf dem Anruf- und SMS-Protokoll: eingehende und ausgehende Nummern, Datum-Uhrzeit, Dauer und Ereignistyp.
Es werden die Tabellen product (Informationen darüber, zu welcher Kategorie das Produkt in einem angegebenen Datumsintervall gehört) und sale (Verkaufsdaten des Produkts mit Verkaufsdatum, Preis pro Einheit und gekaufter Menge) vorgestellt: 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 | Es ist notwendig, eine Abfrage zu schreiben, die den Gesamtumsatz pro Kategorie zurückgibt: |prod_cat |total_amt| |----------|---------| |Kategorie 1|80 | |Kategorie 2|84 | |Kategorie 3|270 |
Wie ordnet man den Verkauf von Produkten, die keiner Kategorie zugeordnet werden können, der Kategorie "Sonstiges" zu?
Es ist notwendig, eine Abfrage zu schreiben, die den Gesamtumsatz pro Kategorie zurückgibt: |prod_cat |total_amt | |Kategorie 1|80 | |Kategorie 2|84 | |Kategorie 3|270 | Es gibt eine Tabelle mit Abonnenten, die Einträge zu unterschiedlichen Zeiten enthält. Das Hochladedatum des Eintrags ist im Feld raw_dt definiert: 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]| Es ist notwendig, eine Abfrage zu schreiben, die die vorletzte hochgeladene Eintragung nach Schlüssel id zurückgibt: |id |msisdn |tarif_plan_id|account_id|raw_dt | |1 |[phone]|5842 |4979 |[phone]| |2 |[phone]|4563 |0832 |[phone]| |3 |[phone]|4563 |0832 |[phone]| Es gibt eine Tabelle mit Abonnenten mit Änderungsverlauf. Jeder Eintrag für einen Abonnenten ist im Zeitraum von valid_from_dt bis valid_to_dt gültig. Wenn ein Eintrag geschlossen wird, beginnt der nächste am selben Datum. Es darf nur einen aktiven Eintrag pro Abonnent im Intervall [valid_from_dt, valid_to_dt] geben. 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 | Es ist notwendig, eine Abfrage zu schreiben, die die Datensätze mit einer inkorrekten Abschlussdatum zurückgibt: |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 | mit 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
Im Raum befinden sich drei Glühbirnen und draußen drei Schalter. Alle sind ausgeschaltet, und man kann nur einmal in den Raum gehen. Wie kann man herausfinden, welcher Schalter jede Lampe steuert?
Es ist notwendig, eine Abfrage zu schreiben, die den vorletzten geladenen Eintrag nach dem Schlüssel id zurückgibt: |id |msisdn |tarif_plan_id|account_id|raw_dt | |------------|-----------|-------------|----------|-----------| |[phone]|5842 |4979 |[phone]| |[phone]|4563 |0832 |[phone]| |[phone]|4563 |0832 |[phone]| Es gibt eine Tabelle mit Abonnenten und Änderungsverlauf. Jeder Eintrag pro Abonnent ist im Zeitraum von valid_from_dt bis valid_to_dt gültig. Wenn ein Eintrag geschlossen wird, beginnt der nächste am selben Datum. Für jeden Abonnenten sollte nur ein aktiver Eintrag im Intervall [valid_from_dt, valid_to_dt] vorhanden sein. 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 | Es ist notwendig, eine Abfrage zu schreiben, die die Datensätze mit inkorrektem Abschlussdatum zurückgibt. |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 |