Предложение ARRAY_AGG в Spanner в настоящее время не поддерживает ORDER BY
Так что, к сожалению, в настоящее время это не разрешено:
SELECT ARRAY_AGG (x ORDER BY x) FROM UNNEST ([2,1, 3,4,2, -1]) как x;
Хотя это разрешено, оно также не будет работать:
SELECT ARRAY_AGG (x) FROM (SELECT x FROM UNNEST ([2 , 1,3,4,2, -1]) как x ORDER BY x);
Доступны следующие варианты:
Если вы возвращаете результат ARRAY_AGG клиенту, результат можно отсортировать там
ИЛИ
Если вы должны вернуть данные в заказе, возможно, вам не нужно использовать ARRAY_AGG? В этом случае вы можете гарантировать заказ с помощью предложения ORDER BY. Это верно:
ВЫБРАТЬ x ОТ UNNEST ([2,1,3,4,2, -1]) как x ЗАКАЗАТЬ ПО x;
Ответ может измениться в будущем, поэтому рекомендуется снова проверить ARRA_AGG на c ( link ), если посмотреть на это время