Типовая задача на 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

repost

237

input message

напишите коммент

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь