Sql 如果值互补,则合并两个连续行

Sql 如果值互补,则合并两个连续行,sql,postgresql,window-functions,Sql,Postgresql,Window Functions,假设我有一个表,列c是按ASC排序的,表中包含空值 id a b c d 1 'a1' 'b1' 1 'd1' 2 'a2' 'b2' 2 3 5 'd3' 4 'a4' 'b4' 6 'd4' 5 'a5' 'b5' 7 6 8 'b6' 它需要以一种 如果两行相互“互补”(如id=2和id=3) 两行c值的差异是我不理解的。没有一行具有id 7或8,只有第1行具有CDoE“相互补充”意味着一

假设我有一个表,列
c
是按ASC排序的,表中包含空值

id  a    b    c   d   
1  'a1' 'b1'  1  'd1'
2  'a2' 'b2'  2
3             5  'd3'
4  'a4' 'b4'  6  'd4'
5  'a5' 'b5'  7  
6             8  'b6'
它需要以一种

  • 如果两行相互“互补”(如id=2和id=3)

  • 两行c值的差异是我不理解的。没有一行具有id 7或8,只有第1行具有CDoE“相互补充”意味着一行中
    a不为空,b不为空,d为空
    ,而另一行中
    a为空,b为空,d不为空
    ?如果增加一行
    7'a7''b7'9
    ,会发生什么情况,哪一个也可以补充第6行?@harmic sorry应该是difference@MikeSherrill“CatRecall”没错,谢谢
    5  'a5'  'b5'  7   'b6'