Запрос использует ARRAY_AGG(product_name) без ORDER BY внутри функции. Что верно о порядке элементов в массиве?

AПорядок элементов в массиве совпадает с порядком первичного ключа таблицы
BПорядок детерминирован: он совпадает с порядком физической вставки строк
CПорядок задаётся через ORDER BY во внешнем SELECT и автоматически применяется к ARRAY_AGG
DБез явного ORDER BY внутри ARRAY_AGG порядок элементов не гарантирован
Правильный ответ. Без ORDER BY внутри ARRAY_AGG(... ORDER BY ...) порядок элементов не определён стандартом и может меняться от запуска к запуску.

Разбор

Порядок строк внутри группы без явной сортировки зависит от плана выполнения, параллелизма и физического расположения данных. Стандарт SQL не гарантирует порядок без ORDER BY. Чтобы получить стабильный результат, нужно писать ARRAY_AGG(product_name ORDER BY product_name) или ARRAY_AGG(product_name ORDER BY created_at). ORDER BY во внешнем SELECT упорядочивает строки результата, но не элементы внутри агрегата.

Проверь себя · 1/3разбор после ответа
Есть таблица payments(amount), в части строк amount равно NULL. Какой запрос посчитает количество всех строк в таблице, включая строки с NULL в amount?
Тренировать SQL в Telegram

Ещё вопросы по теме «Агрегация, GROUP BY и HAVING»