Справочник по функциям

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;
statusany_membermembers
fatherHeadley Quincey2
motherFlavia Quincey2
sonAndie Quincey1
daughterLela Quincey3

Название компании по её 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;
companycompany_nametrips
4air_France2
3Dale_avia2
2Aeroflot2
1Don_avia6
5British_AW10

Подробности

В учебных базах включён режим ONLY_FULL_GROUP_BY: столбец, которого нет в GROUP BY и который не обёрнут в агрегатную функцию, вызывает ошибку. ANY_VALUE снимает эту ошибку, когда значение в группе одинаковое (например, название компании по её id) или когда подходит любое. Какая именно строка попадёт в результат, не определено.

Смотрите также