Я пытаюсь исправить запрос, чтобы сделать его совместимым как с Oracle, так и с Postgres. Но тот же запрос работает в Oracle, а не в Postgres. Пример запроса упрощен и не имеет реального значения, но это хороший пример, чтобы показать проблему, которую я пытаюсь решить.
Версия Postgres: 11.2, версия oracle: 12.1.0.2.0
Таблица платежей имеет два столбца (payment_id, сумма);
Таблица пользователей имеет один столбец (user_id);
Запрос 1:
select p.amount, (select min(p.payment_id) from payments, users where p.payment_id = payments.payment_id)
from payments p, users;
Ошибка в postgres:
столбец «p.amount» должен присутствовать в предложении GROUP BY или использоваться в статистической функции
Запрос 2:
select (select min(p.payment_id) from payments, users where p.payment_id = payments.payment_id) from payments p, users;
Ошибка в postgres:
подзапрос использует несгруппированный столбец "p.payment_id" из внешнего запроса
Кто-нибудь знает, почему вышеупомянутые два запроса работают в oracle, но не в postgres?