Jaka jest różnica między RANK() a DENSE_RANK()?
Data Engineer
CREATE TABLE orders ( driver_id varchar, city varchar, order_id varchar ); -- Uzyskać 10 najlepszych kierowców według liczby zamówień w każdym mieście
Gdzie lepiej działa kompresja danych — w przechowywaniu kolumnowym czy wierszowym i dlaczego?
Opowiedz, co wiesz o przechowywaniu danych w kolumnach i wierszach. Kiedy i które należy wybrać i dlaczego?
-- Oryginalna tabela stretch -- Należy wypełnić NULL wartości poprzednią (nie NULL) w zależności od id - wykonać wypełnianie w dół id | ttime | val ---|-------|----- 1 | 07:30 | NULL 1 | 09:21 | 10 1 | 13:53 | NULL 1 | 16:12 | NULL 2 | 09:42 | 133 2 | 15:20 | NULL 2 | 21:33 | NULL 3 | 08:01 | NULL 3 | 11:41 | 8 3 | 14:23 | NULL 3 | 16:17 | NULL 3 | 19:54 | 2 4 | 13:10 | 312 4 | 14:42 | NULL 4 | 16:31 | 7 4 | 17:44 | NULL id | ttime | val ---|-------|----- 1 | 07:30 | NULL 1 | 09:21 | 10 1 | 13:53 | 10 1 | 16:12 | 10 2 | 09:42 | 133 2 | 15:20 | 133 2 | 21:33 | 133 3 | 08:01 | NULL 3 | 11:41 | 8 3 | 14:23 | 8 3 | 16:17 | 8 3 | 19:54 | 2 4 | 13:10 | 312 4 | 14:42 | 312 4 | 16:31 | 7 4 | 17:44 | 7 -- Zapytanie SQL do uzyskania pożądanej tabeli SELECT id, ttime, COALESCE(val, LAST_VALUE(val) OVER(PARTITION BY id ORDER BY ttime)) as val FROM stretch
Ile dodatkowej pamięci wymaga rozwiązanie z słownikiem, nie licząc danych zwracanych?
Ile czasu zajmie rozwiązanie z użyciem wbudowanego sorted? Czy można wymyślić szybsze rozwiązanie?
Oceń ostateczne rozwiązanie pod względem czasu i pamięci.
Jak rozwiązać problem w czasie liniowym O(n) używając słownika? Co należy przechowywać w słowniku, aby potem zbudować posortowany ciąg? Jak obsłużyć znaki, których nie ma w kolejności?
-- Znaleźć wszystkich pasażerów, którzy odbyli podróże dwa lub więcej dni z rzędu
Dany jest ciąg znaków order, określający pożądany porządek znaków. Należy przestawić znaki w ciągu unsorted_str tak, aby porządek był zgodny z ciągiem order. Oba ciągi składają się z małych liter alfabetu angielskiego, wszystkie znaki w order są różne. Porządek znaków w unsorted_str nazywa się zgodnym z ciągiem order, jeśli z tego, że znak x występuje przed znakiem y w order, wynika, że każde wystąpienie x w unsorted_str musi być przed każdym wystąpieniem y. Sytuacje, gdy w order nie ma znaków z unsorted_str i odwrotnie, są dozwolone. Zwróć dowolną dozwoloną permutację. unsorted_str = "abcd" order = "cba" odpowiedź = "dcba" ("cdba", "cbda", "cbad") def CustomSort(unsorted_str: str, order: str) -> str: # kod tutaj
Jak zrobić przedłużenie w górę (wypełnić NULL poprzednią niezerową wartością w kierunku odwrotnym)?