Решение: Возраст матерей при рождении
Ниже представлены два фрагмента таблиц из базы данных о жителях микрорайона. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. Определите, у скольких детей на момент их рождения матерям было больше 22 полных лет. При вычислении ответа учитывайте только информацию из приведённых фрагментов таблиц.
| ID | Фамилия_И.О. | Пол | Год_рождения |
|---|---|---|---|
| 15 | Петрова Н.А. | Ж | 1944 |
| 22 | Иваненко И.М. | М | 1940 |
| 23 | Иваненко М.И. | М | 1968 |
| 24 | Иваненко М.М. | М | 1993 |
| 32 | Будай А.И. | Ж | 1960 |
| 33 | Будай В.С. | Ж | 1987 |
| 35 | Будай С.С. | М | 1965 |
| 42 | Коладзе А.С. | Ж | 1941 |
| 43 | Коладзе Л.А. | М | 1955 |
| 44 | Родэ О.С. | М | 1990 |
| 46 | Родэ М.О. | М | 2010 |
| 52 | Ауэрман А.М. | Ж | 1995 |
| 73 | Антонова М.А. | Ж | 1967 |
Во фрагменте таблицы 2 приведены пары значений $ID\_Родителя$ и $ID\_Ребёнка$: $(22,23)$, $(42,23)$, $(23,24)$, $(73,24)$, $(22,32)$, $(42,32)$, $(32,33)$, $(35,33)$, $(15,35)$, $(32,44)$, $(35,44)$, $(23,52)$, $(73,52)$.
Решение по шагам
3 шагаСоединяем таблицы по полю $ID$: значение $ID\_Родителя$ из таблицы 2 сопоставляем с полем $ID$ таблицы 1, а значение $ID\_Ребёнка$ — с другой строкой таблицы 1.
$$ID_{родителя}=ID,\quad ID_{ребёнка}=ID$$Для каждой найденной матери вычисляем её возраст в год рождения ребёнка.
$$возраст=Год_{рождения\ ребёнка}-Год_{рождения\ матери}$$Отбираем записи, где пол родителя — «Ж», а возраст матери больше 22 лет. После фильтрации и подсчёта таких записей получаем 5 детей.
Где здесь ошибаются
Сопоставляют ID ребёнка с фамилией родителя вместо ID родителя.
Учитывают родителей мужского пола.
Проверяют условие «не меньше 22 лет» вместо строгого условия «больше 22 лет».