Я думаю, что это довольно ясно из документации :
ANY_VALUE
ANY_VALUE(expression) [OVER (...)]
Описание
Возвращает любое значение из ввода или NULL, если есть нулевые строки ввода.Возвращаемое значение недетерминированное , что означает, что вы можете получать разные результаты при каждом использовании этой функции.
Если вы зависите от конкретного возвращаемого значения, оноВы рискуете, чтобы он не работал в какой-то момент.
Я бы вместо этого рекомендовал использовать оконные функции:
select t.* except (seqnum)
from (select t.*,
row_number() over (partition by . . . order by . . . ) as seqnum
from t
) t
where seqnum = 1;
Это гарантирует, что все значения относятся к одинаковым row, и вы можете контролировать, из какой они строки - при условии, что у вас есть что-то, чтобы уникально идентифицировать каждую строку.