Павел Федотов
Продуктовый аналитик в Авиасейлс · 05.07
Типовая задача на SQL с собеседований
Давайте разберём задачу на SQL, которую обычно спрашивают на технических скринингах в русском бигтехе 🤓
Какое минимальное и максимальное количество строк может вернуть INNER JOIN двух таблиц размером 10 и 100 строк соответственно?
Это задачка на базовое понимание принципа соединения двух таблиц в SQL. Допустим, JOIN совершается по полю column. Минимальное число строк будет выведено, если значения из поля column в таблице A не пересекаются со значениями из поля column в таблице B. Например, поле column в таблице A содержит значения из списка [’a’,’b’,’c’], а поле column в таблице B - значения из списка [’d’,’e’]. Тогда INNER JOIN по этому полю выведет 0 строк.
Максимальное же количество строк вернется в случае, когда поле column в обеих таблицах содержит одно и то же значение. Тогда каждой строке из таблицы A будут сопоставлены все строки таблицы B. Считаем количество таких комбинаций: 10*100 = 1000 строк будет в ответе компилятора.
У этой задачи могут быть различные вариации. Например:
Какое минимальное и максимальное количество строк может вернуть LEFT JOIN двух таблиц размером 100 и 10 строк соответственно?
Минимальное - в случае, когда поля таблиц не имеют пересечений: тогда будет выведено столько строк, сколько есть в левой таблице: 100. Максимальное - в случае всех одинаковых значений по соединяющему столбцу: 100*10 = 1000.
Самое важное в таких задачах - знать все виды джоинов и быть внимательным! И тогда проблем с решением возникать не будет 👍
Подписывайтесь на мой телеграм-канал про продуктовую аналитику и карьеру: https://t.me/pavelfedotov99_channel
еще контент автора
еще контент автора
Павел Федотов
Продуктовый аналитик в Авиасейлс · 05.07
войдите, чтобы увидеть
и подписаться на интересных профи