ANY_VALUE
Возвращает значение выражения из какой-либо строки группы.
MySQL 8.1
ANY_VALUE(expr)Параметры
- expr
- Выражение, значение которого берётся из любой строки группы
Возвращаемое значение
Значение того же типа, что и expr, из произвольной строки группы
Примеры
Любое имя для каждого статуса
MySQL 8.1
SELECT status,
ANY_VALUE(member_name) AS any_member,
COUNT(*) AS members
FROM FamilyMembers
GROUP BY status;Название компании по её id
MySQL 8.1
SELECT company,
ANY_VALUE(Company.name) AS company_name,
COUNT(*) AS trips
FROM Trip
JOIN Company ON Company.id = Trip.company
GROUP BY company;Подробности
В учебных базах включён режим ONLY_FULL_GROUP_BY: столбец, которого нет в GROUP BY и который не обёрнут в агрегатную функцию, вызывает ошибку. ANY_VALUE снимает эту ошибку, когда значение в группе одинаковое (например, название компании по её id) или когда подходит любое. Какая именно строка попадёт в результат, не определено.