如何在SQL (PostgreSQL窗口函数?)中做到这一点



我有一个SQL(特别是PostgreSQL)的情况,我正在努力。我正在使用的模式/模型不在我的控制之下,也不是我能够改变的东西,所以我正在努力找出处理我已经处理过的牌的最佳方法。

首先是模式,针对这个问题进行了简化,但本质上它是发票(Type = T)和事务(Type <>T)行组合成同一表格。每张发票可以有n个交易行,每个客户可以有n个发票。

<表类> Id 类型 InvoiceNo ClientId tbody><<tr>100我100199X0198S0197T0196我99195X0194S01

根据您的示例数据,您可以使用一个累积窗口函数:

select t.*,
min(invoiceno) filter (where type = 'I') over (order by id desc) as imputed_invoiceno
from t;

相关内容

  • 没有找到相关文章

最新更新