Если вы действительно собираетесь использовать это только для 3 предложений и 3 рупий, то вы можете сделать это:
SELECT
id,
CASE
WHEN offer1 > offer2 THEN
CASE WHEN offer1 > offer3 THEN offer1 ELSE offer3 END
WHEN offer2 > offer3 THEN
offer2
ELSE
offer3
END AS offer,
CASE
WHEN offer1 > offer2 THEN
CASE WHEN offer1 > offer3 THEN roi1 ELSE roi3 END
WHEN offer2 > offer3 THEN
roi2
ELSE
roi3
END AS roi
FROM
analysis
Если вы собираетесь делать это более чем на 3, вы можете рассмотреть другую структуру данных, где у вас есть что-то вроде:
CREATE TABLE
offers
(
id BIGSERIAL NOT NULL,
good_id BIGINT,
offer numeric(19, 2) NOT NULL,
roi numeric(12, 2) NOT NULL
)
Где все предложения на один товар делят один и тот же товар_ид. Тогда вы могли бы сделать совокупный запрос, чтобы получить ваш ответ.