Обновить
5
0

Пользователь

Отправить сообщение

Решаем логическую задачу для школьников на SQL

Время на прочтение2 мин
Охват и читатели8.8K
Все началось с очередного скрина в группу whatsap со следующим содержанием (оригинал не на русском языке, но это не важно):

Сумма возрастов Саши, Пети и Вити 67 лет. Когда Витя был в возрасте Саши оставалось еще 3 года до рождения Пети. Какова сумма возрастов Саши и Пети?

Ясно, что задача для школьников, но после долгих часов решения задач на SQL-EX (кстати, спасибо им больше за качественные и интересные задачи) первое что приходит в голову, это:

SELECT DISTINCT r2 + r3
           FROM (SELECT rownum r1 FROM tab) r1
 CROSS JOIN (SELECT rownum r2 FROM tab) r2
 CROSS JOIN (SELECT rownum r3 FROM tab) r3
 WHERE r1 + r2 + r3 = 67 AND r1 - r2 = r3 + 3

Где tab это любая табличка с количеством строк около 100. Решение: 32, на что в группе коллега отреагировал: «А по отдельности им по сколько?». Убираем DISTINCT и меняем "+" на ","… получается 31 пара вариантов… не совсем точный ответ. Почему то захотелось ответить точно, и имея хоть какие-то доказательства на руках.

Итак. Берем всех имеющихся клиентов в подручной базе с именами из задачи и их дни рождения:
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность