У меня есть таблица студентов с временными значениями теста, такими как:
Таблица студентов
+----+-------------+-------+-----------+
| id | section_id | age | name |
+----+-------------+-------+-----------+
| 1 | 1 | 18 | Justin |
+----+-------------+-------+-----------+
| 2 | 2 | 14 | Jillian |
+----+-------------+-------+-----------+
| 3 | 2 | 16 | Cherry |
+----+-------------+-------+-----------+
| 4 | 3 | 19 | Ronald |
+----+-------------+-------+-----------+
| 5 | 3 | 21 | Marie |
+----+-------------+-------+-----------+
| 6 | 3 | 21 | Arthur |
+----+-------------+-------+-----------+
Я хочу запросить таблицу таким образом, чтобы я хотелполучить все максимальные возрасты каждого раздела.Однако, если два студента имеют одинаковый возраст, созданная таблица вернет учащегося с наименьшим идентификатором.
Return:
+----+------------+-----+--------+
| id | section_id | age | name |
+----+------------+-----+--------+
| 1 | 1 | 18 | Justin |
+----+------------+-----+--------+
| 3 | 2 | 16 | Cherry |
+----+------------+-----+--------+
| 5 | 3 | 21 | Marie |
+----+------------+-----+--------+
Я пробовал этот запрос:
SELECT ANY_VALUE(id), ANY_VALUE(section_id), MAX(age), ANY_VALUE(name) FROM
(SELECT id, section_id, age, name FROM students ORDER BY id) as X
GROUP BY section_id
К сожалению, есть случаи, когда id не совпадает с возрастом и именем.
У меня на конце есть:
sql_mode = only_full_group_by
, и я не имею права редактировать это,следовательно, функция any_value, но я понятия не имею, как ее использовать.