我的Postgre中有一个静态表,就像
现在假设我有另一个表,其中有一个具有唯一ID的循环实体,并且具有很多连续状态,例如
cycle state created_at
1 lead 1/1/2000
1 contacted 1/2/2000
1 won 1/3/2000
2 lead 1/1/2000
2 opportunity 2/1/2000
之间缺少一些值,我想用顺序介于其间的状态值填充它们。
如何使用纯SQL实现该目标?
答案 0 :(得分:1)
交叉连接具有不同循环的状态,然后左连接循环。
SELECT x."cycle",
s."state",
a."created_at"
FROM "static" s
CROSS JOIN (SELECT DISTINCT
"cycle"
FROM "another") x
LEFT JOIN "another" a
ON a."state" = s."state"
AND a."cycle" = x."cycle"
ORDER BY x."cycle",
s."order";
答案 1 :(得分:-1)
我会在订单值之间留出空隙,然后以编程方式在应用程序层中对其进行处理。