Лучшие помощники
7 апреля 2023 00:42
392

Ниже представлены два фрагмента таблиц из базы данных о жителях микрорайона. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. На основании приведённых данных определите наибольшую разницу между годами рождения родных братьев.При вычислении ответа учитывайте только информацию из приведённых фрагментов таблиц.

Примечание: Братьев (сестёр) считать родными, если у них есть хотя бы один общий родитель.



Таблица 1

ID фамилия_И.о.

37 Макаренко С.Д.

38 Макаренко О.Д.

41 Макаренко О.И.

42 Макаренко Д.С.

44 Келдыш А.Д.

48 Мазинг A.Е.

50 Шварц А.И.

55 Шварц И.И.

56 Шварц В.И.

58 Шварц 3.М.

59 Хитрово ф.Е.

62 Хитрово Е.Ф.

68 Хитрово С.Е.

Пол

M

Ж

Ж

M

Ж

Ж

M

M

M

Ж

M

M

M

Год рождения

2000

2005

1970

1969

1993

1982

1999

1973

2006

1949

1979

1956

1985

Таблица 2

ID_Родителя

41

42

41

42

58

41

42

62

55

58

55

62

62

ID Ребёнка

37

37

38

38

41

44

44

48

50

55

56

59

68

1 ответ
Посмотреть ответы
Сначала необходимо определить всех братьев и сестер из таблицы 2. Для этого нужно найти все строки, в которых встречается один и тот же ID родителя. На основании этого можно составить таблицу, в которой каждому родителю соответствует список его детей:

Родитель | Дети
-------- | ------
41 | 41, 42
55 | 55, 56, 58
59 | 59
62 | 62, 68

Затем нужно найти годы рождения всех родных братьев и сестер и определить наибольшую разницу между ними. Для этого можно использовать следующий алгоритм:

1. Для каждого родителя из таблицы 2:
1. Найти все дети этого родителя в таблице 2.
2. Для каждого ребенка:
1. Найти год рождения ребенка в таблице 1.
2. Для каждого другого ребенка этого родителя:
1. Найти год рождения другого ребенка в таблице 1.
2. Вычислить разницу между годами рождения двух детей.
3. Если эта разница больше, чем наибольшая найденная ранее, обновить значение наибольшей разницы.

Применяя этот алгоритм к таблице, получаем следующий результат:

Родитель | Дети | Наибольшая разница
-------- | ---------| ------------------
41 | 41, 42 | 2
55 | 55, 56, | 29
| 58 |
59 | 59 | 0
62 | 62, 68 | 6

Наибольшая разница между годами рождения родных братьев составляет 29 лет и принадлежит детям родителя с ID 55.
1
·
Хороший ответ
7 апреля 2023 00:45
Остались вопросы?
Найти нужный