Как LEFT JOIN соединяет повторы и NULL в двух таблицах?
Будет 8 строк: четыре пары (2,2), одна (1,NULL), две (NULL,NULL) и одна (4,NULL). NULL не совпадает с NULL через обычное равенство SQL.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Будет 8 строк: четыре пары (2,2), одна (1,NULL), две (NULL,NULL) и одна (4,NULL). NULL не совпадает с NULL через обычное равенство SQL.
Читать ответДля поиска в конкретном поле подходит awk: index($3, "строка") проверяет третью колонку как обычную подстроку. grep ищет по всей строке и сам по себе колонку не ограничивает.
Читать ответНужно объединить интервалы недоступности всех хостов и измерить их пересечение с каждым днём. Складывать время каждого хоста нельзя: одновременные отказы посчитаются несколько раз.
Читать ответПайплайн не воспроизводим из-за now() и может удваивать raw и агрегаты при retry. Кроме того, дубли userMetadata способны размножить транзакции при JOIN и завысить выручку.
Читать ответСначала посчитайте сумму заказов на день, заполните отсутствующие дни нулями, затем примените AVG по текущей и двум предыдущим строкам календаря каждого пользователя.
Читать ответКлюч шардинга по LastLoginDate нестабилен: версии одного UserId могут попасть на разные шарды и не схлопнуться. Для пользовательских метаданных лучше стабильное распределение по UserId.
Читать ответСоедините движения с товарами и клиентами, ограничьте дату полуоткрытым интервалом и выберите DISTINCT. При выводе покупателя уникальность будет по паре «товар — покупатель».
Читать ответНарастающий итог считают SUM(amount) OVER с разделением по пользователю, порядком по дате и явной рамкой ROWS. При одинаковых датах нужен устойчивый дополнительный ключ.
Читать ответПреобразуйте заезды в +1, выезды в −1, посчитайте дневные изменения и накопительную сумму по календарю. Это верно для полного, очищенного лога с корректными переходами состояний.
Читать ответЕсли нужен отдельный итог на каждый филиал, используйте GROUP BY. Если нужно сохранить строки сотрудников и добавить итог филиала рядом, используйте оконную сумму без ORDER BY.
Читать ответЗапрос ищет максимальный перерыв между соседними заказами каждого клиента и оставляет клиентов с перерывом больше 60 дней. В SQL Server вычисление gap нужно вынести в отдельный CTE.
Читать ответLEFT JOIN сопоставит каждой строке t1 все более ранние даты t2. Python-словарь выведет {True: 100500}: True, 1 и 1.0 равны как ключи.
Читать ответ