如果你真的只想用这个来提供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
)
如果一件商品的所有报价都有相同的商品ID,那么您可以做一个聚合查询来得到您的答案。