RANK() пен DENSE_RANK() арасындағы айырмашылық неде?
Data Engineer
CREATE TABLE orders ( driver_id varchar, city varchar, order_id varchar ); -- Әр қалада ең көп тапсырыс жасаған 10 жүргізушіні алу.
Деректерді сығу қай жерде тиімдірек — бағаналық немесе жолдық сақтау кезінде, және неге?
Колоночды және жолды деректер сақтау туралы не білесің? Қашан және қайсысын таңдау керек және неге?
-- Бастапқы stretch кестесі -- 'val' бағанындағы NULL мәндерді әрбір 'id' тобы бойынша соңғы NULL емес мәнмен толтыру (төмен қарай толтыру) 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 -- Сол жақта бастапқы кесте, ал оң жақта алынуы керек нәтиже SELECT id, ttime, COALESCE(val, LAST_VALUE(val) OVER(PARTITION BY id ORDER BY ttime)) as val FROM stretch
Сөздікпен шешім қосымша қанша жадты талап етеді, қайтарылатын деректерді қоспағанда?
Құрылғының ішкі sorted функциясын қолдану қанша уақыт алады? Жылдамырақ шешім ойлап табуға бола ма?
Уақыт пен жад бойынша соңғы шешімді бағалаңыз.
Қалайша сөздік пайдаланып, мәселені сызықтық уақытта O(n) шешуге болады? Сөздікке не сақтау керек, содан кейін сұрыпталған жолды жинау үшін? Қандай таңбаларды order-да жоқ болса, оларды қалай өңдеу керек?
-- Екі немесе одан да көп күн қатарынан саяхаттаған барлық жолаушыларды табыңыз.
Берілген жол order — қажетті тәртіпті көрсететін. unsorted_str жолындағы таңбалардың тәртібін order жолымен сәйкес келетін етіп қайта құру керек. Екі жол да кіші әріптерден тұрады және order жолындағы барлық таңбалар әртүрлі. unsorted_str жолындағы таңбалардың тәртібі order-мен сәйкес келсе, яғни order-да x таңбасы y-дан бұрын тұрса, онда unsorted_str-да x таңбасы y-дан бұрын болуы керек. order-да unsorted_str-дан таңбалар болмаған жағдайлар және керісінше жағдайлар да болуы мүмкін. Қабылданған кез келген перестановканы қайтарыңыз. unsorted_str = "abcd" order = "cba" жауап = "dcba" ("cdba", "cbda", "cbad") def CustomSort(unsorted_str: str, order: str) -> str: # код
Қалай жоғары қарай созу (NULL-ды алдыңғы нөлдік емес мәнмен толтыру) жүзеге асырылады?