从SQL中的静态表填充值

时间:2018-10-02 23:02:52

标签: sql postgresql

我的Postgre中有一个静态表,就像

enter image description here

现在假设我有另一个表,其中有一个具有唯一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实现该目标?

2 个答案:

答案 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";

db<>fiddle

答案 1 :(得分:-1)

我会在订单值之间留出空隙,然后以编程方式在应用程序层中对其进行处理。