有人能帮我在postgresql实现下面提到的要求。
输入表:
Col1 Col2 Col3 Col4
Jan XXX YYY 1234
Jan XXX YYY 5264
Jan XXX YYY 4736
Feb ZZZ WWW 123
Feb ZZZ WWW 456
输出文本文件:(定界)
Col1 Col2 Col3 Col4
Jan XXX YYY 1234
NULL NULL NULL 5264
NULL NULL NULL 4736
Feb ZZZ WWW 123
NULL NULL NULL 456
我想要像这个专栏一样
2条答案
按热度按时间jmo0nnb31#
您可以:
但是,格式化应该在UI级别完成,而不是在查询级别。我强烈建议您在UI中完成。
vsmadaxz2#
要在PostgreSQL中获得所需的输出,您可以使用LAG函数比较当前行和前一行,并检查Col1、Col2和Col3的值是否相同。如果它们不同,则可以将Col2和Col3的值设置为NULL。
下面是一个示例查询,它应该可以获得所需的输出:
在此查询中,LAG函数用于按Col1和Col4的顺序将当前行与前一行进行比较。如果Col1、Col2和Col3的值与前一行相同,则将NULL值赋给Col2和Col3。否则,将按原样返回Col1、Col2、Col3和Col4的值。
这将以您指定的格式给予所需的输出。