我有一个表定义为:
git init
基本上,它包含商品的要约数量。 我正在寻找一种选择id的方法,并且仅选择两列作为offer和roi,其中roi是所有要约中最大的价值。该怎么做?
答案 0 :(得分:0)
如果您真的只打算将其用于3个优惠和3个rois,则可以执行以下操作:
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
)
一个商品的所有报价共享相同的good_id。然后,您可以进行汇总查询以获取答案。