Как же мне было влом решать задачу! __Собес на деньги: 320к - 350к на руки__ Скажу честно, когда вижу задачу на собесе с лайвкодингом, сразу хочется просто скопировать в LLM и выдать ответ. Потому что оно реально так и решается. Я просто потерял смысл попыток решений таких задач. Кто пишет код вручную.. ну скорее всего сын маминой подруги. И тот самый айтишник, который в ОЙТИ еще со времен Рюрика. Кстати, выражаю огромный респект всем трушным программистам. Сейчас ОЙТИ уже не то... Я в этот раз решил честно все пройти, попробовать. Но, как же мне было влом... Ну буквально надо вырыть яму лопатой, когда рядом стоит эксаватор) Я написал где-то четверть и полностью забил на все нюансы из условий задачи. Задача на мой взгляд непростая. В плане надо сразу несколько условий держать в голове. Плюс это CLICKHOUSE. Какая компания, говорить не буду. Ну либо за 1млн долларов. ```Есть таблица ClickHouse: CREATE TABLE default.migration_report ( RunId UUID, CollectionName String, DocumentName String, StartedAt Nullable(DateTime), CompletedAt Nullable(DateTime), LastError String ) ENGINE = ReplacingMergeTree ORDER BY RunId SETTINGS index_granularity = 8192; Необходимо посчитать количество успешных и неуспешных загрузок за последний календарный месяц. Результат должен содержать два столбца: | succeeded | failed | Условия: 1. Расчёт выполняется отдельно для каждого источника (`CollectionName`) и каждого календарного дня. 2. В течение одного дня у одного источника может быть несколько загрузок. 3. Если у источника произошла неуспешная загрузка (`LastError != ''`), то эта загрузка учитывается как failed, а все последующие загрузки этого источника в этот же день не учитываются. 4. Успешной считается загрузка, у которой `LastError = ''`. 5. Для преобразования даты и времени можно использовать функцию `toDate()`. Напишите SQL-запрос для ClickHouse.``` Решение задачи ```WITH toStartOfMonth(addMonths(today(), -1)) AS month_start, toStartOfMonth(today()) AS month_end SELECT countIf(LastError = '' AND previous_failed = 0) AS succeeded, countIf(LastError != '' AND previous_failed = 0) AS failed FROM ( SELECT CollectionName, toDate(StartedAt) AS upload_date, LastError, sum(LastError != '') OVER ( PARTITION BY CollectionName, toDate(StartedAt) ORDER BY StartedAt, RunId ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) AS previous_failed FROM default.migration_report WHERE StartedAt >= month_start AND StartedAt < month_end )```
Как же мне было влом решать задачу! Собес на деньги: 320к - 350к на руки Скажу…
Источник
https://t.me/halltape_data/898Канал Я – Дата Инженер | Евгений Виндюков · опубликовано 2 сент. 2026 г.
Из этого канала
- #899Что происходит с рынком DE? его нет. все кончено. только на завод. надо было…
Что происходит с рынком DE? его нет. все кончено. только на завод. надо было раньше. раньше было лучше.
- #900У кого также? https://youtube.com/shorts/t3jNP7uKLA8?si=uBELMi6JTjznj1xU
У кого также? https://youtube.com/shorts/t3jNP7uKLA8?si=uBELMi6JTjznj1xU
- #901☁️☁️☁️☁️☁️☁️☁️ Дата-инженерия — это не только про ETL и пайплайны, это ещё и…
☁️☁️☁️☁️☁️☁️☁️ Дата-инженерия — это не только про ETL и пайплайны, это ещё и про то, куда движется вся экосистема данных.
- #897🚀 8-й поток стартует уже ЗАВТРА! Ребят, кто хотел залететь на BootCamp по Data…
🚀 8-й поток стартует уже ЗАВТРА! Ребят, кто хотел залететь на BootCamp по Data Engineering, но всё откладывал — вот он, тот самый последний момент 😁 Сегодня и…
- #896Хочу написать отзыв про буткемп. Меня зовут Тимур, я проходил курс буткемпа и…
Хочу написать отзыв про буткемп. Меня зовут Тимур, я проходил курс буткемпа и разделил бы свой отзыв о курсе на несколько направлений: 1) Преподаватели Женя и…