我有一個Postgres的表看起來像這樣一些數據:如何在Postgres中的其他兩行中生成新行?
1 apple datetime1
2 orange datetime2
3 apple datetime3
4 orange datetime4
5 apple datetime5
6 orange datetime6
.
日期時間總是按升序排列,多數次蘋果行被插入第一和橙色的第二有一些例外,我要趕上並消除。
我實際上需要的是一個Postgres的查詢,將只配對蘋果和橘子:
1 apple datetime1 2 orange datetime2
3 apple datetime3 4 orange datetime4
5 apple datetime5 6 orange datetime6
蘋果不應該與其他蘋果和桔子不應該與其他柑桔配對配對。
有幾個條件:
1)在新產生的行蘋果應始終是第一和第二橙色。
2)始終將蘋果和橙色行與最近的日期時間配對,並忽略其他行。
例如,如果我有原始數據看起來像這樣:
1 apple datetime1
2 apple datetime2
3 orange datetime3
4 orange datetime4
對
2 apple datetime2 3 orange datetime3
,並忽略行
1 apple datetime1
4 orange datetime4
任何想法如何做到這一點的Postgres的?
恰好兩個fuits - '蘋果'/'橙色'?沒有其他和沒有NULL? –
@Erwin Brandstetter在同一張桌子上還有一些其他的水果,但爲了這份報告,我只需要找到蘋果和橙子配對。 – avatar
@ErwinBrandstetter好的,這次你做CTE,好嗎? – wildplasser