Запрос использует ARRAY_AGG(product_name) без ORDER BY внутри функции. Что верно о порядке элементов в массиве?
AПорядок элементов внутри массива всегда совпадает с порядком первичного ключа исходной таблицы, независимо от плана выполнения и
ORDER BYBПорядок детерминирован и совпадает с физическим порядком вставки строк, потому что
ARRAY_AGG читает данные строго в порядке INSERTCПорядок задаётся через внешний
ORDER BY в SELECT и автоматически применяется внутри ARRAY_AGG без явного указания сортировкиDБез явного
ORDER BY внутри ARRAY_AGG(...) порядок элементов в массиве не гарантирован стандартом и может меняться от запуска к запускуПравильный ответ. Без
ORDER BY внутри ARRAY_AGG порядок элементов не определён стандартом и может меняться между запусками.Разбор
Порядок строк внутри группы без явной сортировки зависит от плана выполнения, параллелизма и физического расположения данных. Стандарт SQL не гарантирует порядок без ORDER BY. Чтобы получить стабильный результат, пишут ARRAY_AGG(product_name ORDER BY product_name) или ARRAY_AGG(product_name ORDER BY created_at). Внешний ORDER BY в SELECT упорядочивает строки результата, но не элементы внутри агрегата, а порядок вставки и первичный ключ напрямую не влияют на порядок чтения.
Проверь себя · 1/3разбор после ответа
Нужно посчитать сумму оплаченных заказов по каждому пользователю. В таблице
orders есть поля user_id, amount, status. Какой запрос корректен и наиболее эффективен?Ещё вопросы по теме «Агрегация, GROUP BY и HAVING»
- Что делает оператор `DISTINCT` в `SELECT`-запросе?
- Что делает оператор `HAVING` в SQL-запросе с группировкой?
- Есть таблица `orders(user_id, amount)`. Какой запрос посчитает сумму всех заказов по каждому пользователю?
- Нужно посчитать сумму оплаченных заказов по каждому пользователю. В таблице `orders` есть поля `user_id`, `amount`, `status`. Какой запрос корректен и наиболее эффективен?
- В таблице пользователей есть колонка `middle_name`, в которой часто хранится `NULL`. Что вернёт выражение `COUNT(middle_name)`?
- Все вопросы по «Агрегация, GROUP BY и HAVING» →