Откровенная аналитика
17.03
Занятные задачки по SQL от Магнита
В пятницу вечером был на неожиданном собесе от Магнита, где задали пару интересных задачек, на которые ответ приходит не с первого взгляда. Решил ими поделиться
Задача 1 🏝 Есть таблица броней в отеле bookings: id (идентификатор брони) date_from (дата заезда) date_to (дата выезда)
Найти все брони, которые попадают в новогодние праздники 2025 (то есть хотя бы один день пребывания попадает в диапазон между 2025-01-01 и 2025-01-08)
Решение Тут важно учесть, что бронь может начаться до, а закончиться после праздников, поэтому простая проверка на вхождение даты начал/конца в диапазон не подходит `select * from bookings where date_from<='2025-01-08' and date_to>='2025-01-01'
Задача 2 🏃 Есть таблица с результатами забега results: id (идентификатор бегуна) time (время)
Присвоить каждому бегуну место (чем меньше время тем лучше). Нельзя использовать оконные функции
Решение: Раз нельзя использовать оконки, можно для каждого участника посчитать тех, кто пробежал быстрее, эта цифра совпадёт с его местом. Для этого нужно сделать нестрогий джойн по дате `select r1.id, count(r2.id) as rn from results as r1 left join results as r2 on r1.time>=r2.time group by r1.id
На последнюю задачу ответ приходит быстро, но для полноты оставлю её тоже
Задача 3 📦 Есть таблица с идентификаторами заказов orders: id (идентификатор заказа)
Найти идентификаторы заказов, по которым пришли дубли
Решение: `select id from orders group by id having count(*)>1
Делитесь в комментариях, все ли задачки получилось решить
Кстати вакансия прикольная: это позиция в ecom направление магнита, неплохой продукт, и они хотят побыстрее, поэтому можно без кучи собесов устроиться Так что если интересно, то вот описание вакансии (это пост в линке) и контакт лида @german_c```
еще контент в этом сообществе
еще контент в этом соообществе
Откровенная аналитика
17.03
войдите, чтобы увидеть
и подписаться на интересных профи